pip 및 virtualenv를 시스템 전체에 설치하는 공식 "선호"방법은 무엇입니까?


86

사람들이 가장 자주 추천하는 것 같습니다.

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv

또는 이것은 http://www.pip-installer.org/en/latest/installing.html 에서 얻었습니다 .

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

아니면 완전히 다른 걸까요?

답변:


93

최신 Python (2.7.9 이상)을 설치할 수 있다면 Pip이 번들로 제공됩니다. 참조 : https://docs.python.org/2.7//installing/index.html
그렇지 않은 경우 :
업데이트 (출시 정보에서) :

v1.5.1부터 pip는 get-pip.py를 실행하기 전에 setuptools가 필요하지 않습니다. 또한 setuptools (또는 배포)가 아직 설치되지 않은 경우 get-pip.py가 setuptools를 설치합니다.

이제 일반 실행 :

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

공식 설치 지침은 다음과 같습니다. http://pip.readthedocs.org/en/latest/installing.html#install-pip

2013 년 7 월 25 일 수정 :
setuptools 설치 URL이 변경되었습니다.

2014 년 2 월 10 일 수정 :
setuptools 설치 제거 (@Ciantic에게 감사)

2014 년 6 월 26 일 수정 :
URL을 다시 업데이트했습니다 (@LarsH에게 감사드립니다)

2015 년 3 월 1 일 수정 :
Pip은 이제 Python과 함께 번들로 제공됩니다.


1
setuptools-0.8을 어디에 / 어떻게 설치합니까? ez_setup.py핍을 얻는 "경량 버전"을 찾고있는 것 같습니다 . 나는 동일한 기능을 수행하지만 가까운 미래에 휴식 것을 두려워 나는 (내가 항상하는 것처럼) 여기에 다시 붙어거야 것
스티븐 루

3
아, 여기에 말씀하신대로하라는 지시처럼 보입니다. 그럼 신경 쓰지 마.
Steven Lu

4
이를위한 새로운 (?) 방법이 있습니다. 이것은 pip와 setuptools를 자동으로 설치합니다 : wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py 그리고 python get-pip.py(sudo가 필요할 수 있습니다)
Ciantic

3
이제 get-pip.py의 URL이 https://bootstrap.pypa.io/get-pip.py. 공식 지침에 연결하는 것이 더 좋습니다.
LarsH 2014-06-25

2
추신이 답변에 감사드립니다-pip를 설치하는 데 도움이되었습니다.
LarsH 2014-06-26

21

http://www.pip-installer.org/en/latest/installing.html 은이 질문에 대한 정식 답변입니다.

특히 시스템 전체 지침은 다음과 같습니다.

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

질문에 인용 된 섹션은 virtualenv시스템 전체가 아닌 지침입니다. easy_install지침은 이상 주변에 있었다,하지만 더 이상 그런 식으로 할 필요가 없습니다.


해당 페이지의 시스템 전체 지침과 virtualenv질문에 인용 된 지침 간의 차이점을 명확히하기 위해 편집되었습니다 .
ncoghlan 2011

1
업데이트 : 배포는 더 이상 pip에 대해 작동하지 않습니다! stackoverflow.com/a/17601159/78234
Tal Weiss

1
링크 된 페이지의 지침은 더 이상 여기의 지침과 일치하지 않습니다. 그것은 단지 (?! 왜 사람이 처음부터 그들을 의심 않은) 공식 페이지를 방문하여 그들이 말하는대로 할 것이 좋습니다
닐 Traft

이 답변에 설명 된 접근 방식은 구식이며 더 이상 작동하지 않는 것 같습니다.
cel 2015 년

16

이 답변은 Twitter의 @webology에서 나왔습니다.

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install --upgrade pip virtualenv virtualenvwrapper

내가 추가 한 메모 :

  • Mac / Windows (및 apt 저장소가 오래된 경우 Linux)에서는 첫 번째 단계를 http://pypi.python.org/pypi/setuptools 에서 setuptools를 다운로드하는 것으로 대체합니다 .
  • Windows에서는 마지막 단계에서 virtualenvwrapper를 생략하고 어떻게 든 수동으로 설치해야합니다. Cygwin없이이 작업을 수행 할 수있는 방법이 있는지 모르겠지만 그렇게되기를 바랍니다.

1
조건이 pip 및 virtualenv의 시스템 전체 설치를 원하는 경우, 이것이 일반적으로 수행하는 작업입니다. 질문에서 두 번째 대안으로 제공된 pip 문서의 지침은 시스템 전체에 설치하는 것을 피한다는 전제를 기반으로합니다.
Carl Meyer 2011

3
처음 두 명령을 $ sudo apt-get install python-pip. python-pip를 설치하면 python-setuptools도 설치됩니다.
Dennis

4

Ubuntu 12.04에서는 패키지 관리자를 사용하여 행운을 빕니다.

sudo apt-get install python-pip virtualenvwrapper

1
패키지 버전은 오래되었습니다. python-pip 1.0-1build12011 년 초에 출시되어 virtualenvwrapper 2.11.1-212012 년 1 월 에 출시 된 12.04 제공 . @Richard Jones의 답변을 통해 최신 정보를 얻을 수 있습니다.
JCotton 2013 년

3

선호하는 방법은 없습니다. 모든 것이 필요에 따라 다릅니다. 종종 어떤 이유로 든 시스템에 다른 Python 인터프리터가 있어야합니다. 이 경우 각 통역사에 대해 개별적으로 설치해야합니다. 그 외에 : 나는 때때로 문제를 일으키는 미리 패키지 된 것들에 의존하는 대신 직접 설치하는 것을 선호합니다. 그러나 그것은 하나의 가능한 의견 일뿐입니다.


20 명으로 구성된 학급에게 이러한 지침을 제공하고 오도하고 싶지 않기 때문에 선호하는 방법에 대해 구체적으로 묻는 것입니다.
커피 분쇄기

3

이 질문에 대한 단일 "답변"은 없지만 결정을 내리는 데 도움이되는 몇 가지 유용한 개념이 있습니다.

사용 사례에서 답해야 할 첫 번째 질문은 "시스템 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 개 이상의 가상 환경이 디스크 공간을 많이 사용하고 파일 시스템을 복잡하게 만들 수 있다는 것입니다.

보시다시피 많은 옵션을 사용하여 어떤 방법을 사용할지 말하기는 어렵지만 사용 사례를 조금만 조사하면 효과가있는 방법을 찾을 수 있습니다.



2

virtualenvs에는 기본적으로 pip가 포함되어 있으므로 전 세계적으로 pip를 거의 설치하지 않습니다. 내가하는 일은 다음과 같이 보입니다.

$ sudo apt-get install python-setuptools
$ curl -O http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py
$ sudo easy_install virtualenv

그런 다음 원하는대로 virtualenvwrapper를 설치하고 설정합니다. Jeremy Avnet의 virtualenv-burrito를 살펴 보는 것도 좋습니다.

https://github.com/brainsik/virtualenv-burrito


잡아 주셔서 감사합니다. ;)
David Gouldin 2011

3
왜 python-setuptools를 사용하고 배포하러 직접 갈 수있을 때 배포합니까?
lambacck 2011

@lambacck 설명하는 내용을 별도의 답변으로 게시 해 주시겠습니까 (반복적으로 보이더라도)?
커피 분쇄기

2
최근 우분투 (그리고 데비안도? 확실하지 않음)에서 "python-setuptools"패키지가 실제로 배포된다는 점은 말할 것도없고, 특정 배포 단계를 건너 뛸 수도 있습니다.
Carl Meyer 2011

@ coffee-grinder distribution은 setuptools의 포크이며 동일한 기능 (및 그 이상)을 제공합니다. 일을 귀찮게하지 마십시오 "apt-get을 파이썬-setuptools에 설치"파이썬-setuptools에하지 않는 한 (칼이 될 수있는 표시로)하는 경우는 2 및 3 단계를 건너 뛸 배포 IS
lambacck

2

@ericholscher는 Twitter에서 "공식 문서에있는 사람 .."이라고 말합니다.

좋은 점입니다. 문서가 말하는대로해야합니다.

http://www.pip-installer.org/en/latest/installing.html 의 공식 pip 설치 지침에서 인용 :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

✓ 배포 패키지에 의존하지 않으려는 경우 가장 좋은 옵션입니다.
Tobu

2

배포판 패키지에서 시작하여 다음 중 하나를 사용할 수 있습니다.

sudo apt-get install python-virtualenv

가상 환경을 만들 수 있습니다.

sudo apt-get install python{,3}-pip

임의의 패키지를 홈 디렉토리에 설치할 수 있습니다.

virtualenv에 익숙하다면 첫 번째 명령은 필요한 모든 것을 제공합니다 (pip는 번들로 제공되며 생성 한 모든 virtualenv에 설치됩니다).

패키지 만 설치하려는 경우 두 번째 명령이 필요한 것을 제공합니다. 다음과 같이 pip를 사용하십시오.

pip install --user something

다음과 같은 것을 넣어

PATH=~/.local/bin:$PATH

귀하의 ~/.bashrc.


배포판이 오래되었고 패키지를 전혀 사용하고 싶지 않다면 (아마도 Python 자체를 제외하고) tarball 또는 독립 실행 형 스크립트로 virtualenv를 다운로드 할 수 있습니다.

wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py
chmod +x ~/bin/virtualenv

배포판이 최첨단 유형에 가깝다면 Python3.3에는 virtualenv와 유사한 기능이 내장되어 있습니다.

python3 -m venv ./venv

이것은 훨씬 더 빠르게 실행되지만 setuptools 및 pip는 포함되어 있지 않습니다.


2

Mac (osx)에 pip를 설치하려면 다음 라이너가 잘 작동했습니다.

sudo easy_install pip

2

Raspbian에서는를 언급 할 필요조차 없습니다 python2.7. 실제로 이것은 파이썬 버전이 2.7.9 미만인 경우 pip를 설치하는 가장 좋은 방법입니다.

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

@ tal-weiss 덕분에



1

이 모든 것을 설치하기 위해 get-pip 및 virtualenv-burrito를 사용합니다. python-setuptools가 필요한지 확실하지 않습니다.

# might be optional. I install as part of my standard ubuntu setup script
sudo apt-get -y install python-setuptools

# install pip (using get-pip.py from pip contrib)
curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && sudo python get-pip.py

# one-line virtualenv and virtualenvwrapper using virtualenv-burrito
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash


0

전자의 방법은 괜찮습니다. 내가 볼 수있는 유일한 문제는 이전 버전의 setuptools로 끝날 수 있다는 것입니다 (apt 저장소가 최신 상태로 유지되지 않은 경우 ..

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.