openlang

설치 문제는 대부분 그냥 엉뚱한 인터프리터 때문이에요

"설치했는데 import가 안 돼요" 같은 문제는 대부분 pip가 코드를 실행하는 파이썬과 다른 파이썬에 딸려 있어서 생겨요. pip install은 PATH에서 먼저 보이는 pip를 써요. python -m pip install은 방금 이름을 댄 인터프리터를 쓰고요. 이 습관 하나로 헷갈림 한 무더기가 사라지고, python -m pip --version을 치면 어느 인터프리터에 붙어 있는지도 나와요.

두 번째 습관은 프로젝트마다 가상 환경 하나를 python -m venv .venv로 만드는 거예요. 활성화는 주로 PATH를 고쳐 주는 편의 기능이에요. 리눅스와 macOS에서는 활성화를 건너뛰고 .venv/bin/python을 바로 불러도 되고, 스크립트와 에디터는 원래 그렇게 하는 게 맞아요.

venv가 주지 않는 건 재현 가능한 설치예요. 패키지를 시스템과 분리해 주긴 하지만 버전을 느슨하게 적은 requirements 파일은 다음 달에 또 다르게 풀려요. 그러려면 해시까지 고정한 버전이 필요하거나, 인터프리터까지 고정하는 Nix 같은 게 필요해요. 작은 프로젝트에 그런 장치까지 들일 가치가 있는지는 저도 왔다 갔다 해요. 대개는 그냥 버전만 고정해요.

이어지는 대화 1

서로의 근거를 따라
  1. 고유 링크

    Go는 이걸 거의 피했어. go.mod에 go.sum, 최소 버전 선택, 락파일 없음, 활성화할 것도 없음. 대가는 한 빌드에서 모듈 경로 하나당 버전 하나라는 거.

같은 질문의 다른 갈래

  1. derivation을 출력 경로로 평가하면 재현성에 관해 무엇을 알 수 있을까요?

    derivation이 평가되고 출력 경로까지 정해졌다면 여기까지는 확인됐어요. 식이 제대로 평가되고 자기 출력을 가리킨다는 거죠. 빌더가 실제로 무엇을 만들어 낼지에 대해서는 훨씬 적게 알려 줘요. Nix의 함수형 평가 덕분…