이 질문에 대한 단일 "답변"은 없지만 결정을 내리는 데 도움이되는 몇 가지 유용한 개념이 있습니다.
사용 사례에서 답해야 할 첫 번째 질문은 "시스템 Python을 사용하고 싶습니까?"입니다. 운영 체제와 함께 배포 된 Python을 사용하려면 apt-get 설치 방법을 사용하는 것이 좋습니다. 하지만 운영 체제 배포 방법에 따라 "이 패키지의 여러 버전을 설치 하시겠습니까?"와 같은 추가 질문을해야합니다. 대답이 예이면 apt와 같은 것을 사용하는 것은 좋은 생각이 아닐 것입니다. Dpkg는 파일 시스템의 루트에있는 아카이브의 압축을 풀 것입니다. 따라서 패키지가 아주 작은 가정하에 안전하게 설치되었는지 확인하는 것은 패키지 관리자에게 달려 있습니다. 대부분의 데비안 패키지의 경우, (누군가가 여기에서 나를 고쳐도 좋다고 생각할 수 있음) 단순히 압축을 풀고 최상위 패키지를 제공한다고 가정합니다.
예를 들어 패키지가 "virtualenv"라고 가정하면 /usr/lib/python2.x/site-packages/virtualenv
. 함께 설치하면 디렉토리 또는 압축 된 계란 이 가리키는 easy_install
것과 같은 /usr/lib/python2.x/site-packages/virtualenv.egg-link
것을 얻을 /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
수 있습니다. Pip은 계란을 사용하지 않지만 비슷한 작업을 수행하고 대신 최상위 패키지를 lib
디렉토리에 직접 배치합니다 .
나는 길을 잃을 수도 있지만 요점은 각 방법이 서로 다른 요구를 고려한다는 것입니다. 이것이 virtualenv와 같은 도구를 사용하면 라이브러리와 버전에 필요한 모든 조합을 가질 수 있도록 Python 라이브러리를 샌드 박스 할 수 있으므로 유용합니다.
Setuptools는 또한 패키지를 다중 버전으로 설치할 수 있으므로 단일 모가 dule_name.egg-link
생성 되지 않습니다 . 이러한 패키지를 가져 오려면 pkg_resources 및 __import__
함수 를 사용해야 합니다.
원래 질문으로 돌아가서 시스템 파이썬에 만족하고 virtualenv 및 pip를 사용하여 다른 응용 프로그램을위한 환경을 구축 할 계획이라면 apt-get을 사용하여 시스템 수준에서 virtualenv 및 / 또는 pip를 설치하는 것이 완전히 적절 해 보입니다. 주의 할 점은 배포판 Python을 업그레이드 할 계획이라면 시스템 사이트 패키지에 다시 연결하면 virtualenv를 통해 파급 효과가있을 수 있다는 것입니다.
또한 이러한 옵션 중 어느 것도 본질적으로 다른 옵션보다 낫다는 점을 언급해야합니다. 그들은 단순히 다른 접근 방식을 취합니다. 시스템 버전을 사용하는 것은 Python 애플리케이션을 설치하는 훌륭한 방법이지만 Python으로 개발하는 것은 매우 어려울 수 있습니다. 쉬운 설치 및 설정 도구는 virtualenv가없는 세상에서 매우 편리하지만 동일한 라이브러리의 다른 버전을 사용해야하는 경우 다소 다루기 어려워집니다. Pip 및 virtualenv는 실제로 가상 머신처럼 작동합니다. 나란히 설치하는 대신 완전히 새로운 환경을 만듭니다. 여기서 단점은 나중에 30 개 이상의 가상 환경이 디스크 공간을 많이 사용하고 파일 시스템을 복잡하게 만들 수 있다는 것입니다.
보시다시피 많은 옵션을 사용하여 어떤 방법을 사용할지 말하기는 어렵지만 사용 사례를 조금만 조사하면 효과가있는 방법을 찾을 수 있습니다.
ez_setup.py
핍을 얻는 "경량 버전"을 찾고있는 것 같습니다 . 나는 동일한 기능을 수행하지만 가까운 미래에 휴식 것을 두려워 나는 (내가 항상하는 것처럼) 여기에 다시 붙어거야 것