파이썬에는 패키지 / 모듈 관리 시스템이 있습니까?


145

파이썬에는 패키지 / 모듈 관리 시스템이 gem install packagename있습니까? 루비에는 루비 젬이있는 방법과 비슷합니까 ?

파이썬 모듈을 설치 , 난 단지에 대한 참조를 볼 수 python setup.py install있지만, 먼저 패키지를 찾을 수 있도록해야합니다.


3
Python의 패키지 인덱스 PyPI에 패키지 설치 방법에 대한 명확한 지침이 있어야한다고 생각한다면 bitbucket.org/pypa/pypi/issue/149/…
Colonic Panic

당시에는 최신 상태 였지만이 질문의 링크는 이제 기존 distutils 설명서에 연결되어 있습니다. 나는 이 문서들이 더 이상 최종 사용자 문서로 사용하기에 적합하지 않다는 것을 분명히 하기 위해 bugs.python.org/issue26014 를 제출 했습니다 (도구 구현 자의 이익을 위해서만 유지됩니다).
ncoghlan

답변:


213

최근 진행

2014 년 3 월 : 좋은 소식! Python 3.4 는 Pip과 함께 제공됩니다. Pip은 오랫동안 파이썬의 사실상 표준 패키지 관리자였습니다. 다음 과 같은 패키지 를 설치할 수 있습니다 .

pip install httpie

와이! 이것은 모든 파이썬 릴리스에서 가장 좋은 기능입니다. 커뮤니티의 풍부한 라이브러리를 누구나 이용할 수 있습니다. 초보자는 더 이상 설정이 어려운 커뮤니티 라이브러리 사용에서 제외되지 않습니다.

그러나 파이썬 패키징 경험에는 여전히 많은 좌절감이 남아 있습니다. 누적 적으로 그들은 초보자에게 파이썬을 매우 환영하지 않습니다. 또한 오랜 방치의 역사 (즉, Python 2.0에서 Python 3.3까지 14 년 동안 패키지 관리자와 함께 제공하지 않음)는 커뮤니티에 피해를 입혔습니다. 아래에 모두 설명합니다.

뛰어난 좌절

숙련 된 사용자는 이러한 좌절을 해결할 수 있지만 Python을 처음 사용하는 사람들에게는 큰 장애물이라는 것을 이해해야합니다. 실제로 어려움과 일반적인 사용자 친화 성은 많은 사람들을 방해 할 가능성이 있습니다.

PyPI 웹 사이트는 도움이됩니다

패키지 관리자가있는 모든 언어에는 커뮤니티가 패키지를 다운로드하고 게시 할 수있는 공식 (또는 준 공식) 저장소가 있습니다. 파이썬에는 파이썬 패키지 인덱스 (PyPI)가 있습니다. https://pypi.python.org/pypi

해당 페이지를 RubyGems 및 Npm (노드 패키지 관리자)의 페이지와 비교해 보겠습니다.

  1. 패키지의 https://rubygems.org/gems/rails RubyGems 페이지rails
  2. 패키지에 대한 https://www.npmjs.org/package/express Npm 페이지express
  3. 패키지에 대한 https://pypi.python.org/pypi/simplejson/ PyPI 페이지simplejson

RubyGems 및 Npm 페이지는 패키지에 대한 한 줄짜리 설명으로 시작한 다음 설치 방법에 대한 대규모 지침을 제공합니다.

한편, PyPI를 순진하게 탐색하는 불쾌한 Python 사용자에게는 화가납니다. 에 https://pypi.python.org/pypi/simplejson/ , 그들은 그런 도움이 지침을 찾을 수 있습니다. 그러나 큰 녹색 '다운로드'링크가 있습니다. 그것을 따르는 것은 부당하지 않습니다. 아하, 클릭! 브라우저가 .tar.gz파일을 다운로드 합니다. 많은 Windows 사용자는 열 수 없지만 인내하면 결국 압축을 풀고 실행 setup.py하고 결국 Google의 도움을 받아 실행할 수 있습니다 setup.py install. 일부는 바퀴를 포기하고 재발 명 할 것입니다.

물론이 모든 것이 잘못되었습니다. 쉬운 패키지를 설치하는 방법은 핍 명령입니다. 그러나 PyPI는 Pip에 대해서도 언급하지 않았습니다. 대신, 그것은 고풍스럽고 지루한 길로 이끌었습니다.

오류 : vcvarsall.bat를 찾을 수 없습니다

Numpy는 Python에서 가장 많이 사용되는 라이브러리 중 하나입니다. Pip으로 설치하려고하면이 암호 오류 메시지가 나타납니다.

오류 : vcvarsall.bat를 찾을 수 없습니다

이 문제를 해결하려고하면 Stack Overflow에서 가장 인기있는 질문 중 하나입니다 : " error : vcvarsall.bat를 찾을 수 없습니다 "

성공하는 사람은 거의 없습니다.

동일한 상황에서 Ruby는이 메시지를 인쇄하여 진행 상황 및 해결 방법을 설명합니다.

빌드 도구를 포함하도록 PATH를 업데이트하거나 http://rubyinstaller.org/downloads 에서 DevKit을 다운로드하고 http://github.com/oneclick/rubyinstaller/wiki/Development-Kit 의 지침을 따르십시오

패키지 게시가 어렵다

Ruby와 Nodejs는 모든 기능을 갖춘 패키지 관리자 인 Gem (2007 년 이후) 및 Npm (2011 년 이후)과 함께 제공되며 GitHub를 중심으로 공유 커뮤니티를 육성했습니다. Npm은 패키지 를 설치하는 것만 큼 쉽게 게시 할 수 있으며 이미 64k 패키지가 있습니다. RubyGems는 72k 패키지를 나열 합니다 . 훌륭한 Python 패키지 인덱스는 41k 만 나열 합니다 .

역사

" 배터리 포함 "이라는 모토에 직면하여 파이썬은 2014 년까지 패키지 관리자없이 배송했습니다.

Pip까지 사실상의 표준은 명령 easy_install이었습니다. 너무 부적절했다. 패키지를 제거하라는 명령이 없습니다.

핍은 크게 개선되었습니다. 그것은 Ruby 's Gem의 기능을 대부분 가지고있었습니다. 불행히도 Pip는 최근까지 아이러니하게 설치하기가 어려웠다. 사실,이 문제는 Stack Overflow에서 "파이썬을 어떻게 Windows에 설치합니까? "


3
관심있는 사람이라면 PEP 439 는 pip 설치 프로세스를 간소화하는 방법을 제안하지만이 PEP는 현재보다 광범위한 전략의 일부라고 생각합니다. 토론을 참조 하십시오 .
카트 루

3
@Cartroo 좋은 소식입니다! 파이썬은 패키지 관리자가 필요합니다. 개발자가 그렇게 할 수 있기를 바랍니다.
Colonic Panic

물론 기한이 지났습니다. 적어도 그것이 파이썬 3.4로 만들어지기를 바랍니다. 불행히도 나는 그것이 2.x로 백 포트 될 것이라고 의심합니다. 그러나 터널 끝에 최소한 빛이 있습니다. 다가오는 용이
아니길 바랄뿐입니다

6
파이썬의 방어에서 Ruby와 Node와 같은 새로운 언어는 운 좋게도 이전 언어의 실수를 관찰하고 피할 수있었습니다. 즉, 파이썬에서 패키지 관리가 더 많은 사랑과 보살핌을 받기를 바랍니다. 따라서 @Cartroo가 지적한 PEP 439를 보게되어 기쁩니다.
Dennis

Ruby의 패키지 관리는 (최종 사용자) 관점에서 훌륭한 것입니다 gem install X. 모든 플랫폼에서 작동하는 것 같습니다. 그렇다면 Windows에서 C 코드 컴파일이 필요한 보석에 대해 어떻게 이것을 관리 했습니까?
bsa

64

Python 패키지 색인 (PyPI) 이 표준으로 보입니다.

  • 패키지 를 설치 하려면pip install MyProject
  • 패키지 를 업데이트 하려면pip install --upgrade MyProject
  • 패키지 버전 수정pip install MyProject==1.0

다음과 같이 패키지 관리자를 설치할 수 있습니다.

curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
easy_install pip

참고 문헌 :


3
이것이 현대의 답변입니다.
Gringo Suave

6
인터넷을 20 분 동안 검색했는데이 대답은 어디에도 없었습니다. 정말 고맙습니다. 문서가이 나쁜 경우 또한, 나는 파이썬 사용에 대한 심각한 의심이 ...이 구글에서 또는에서 파이썬 메인 페이지 또는 accesible에 있어야 뭔가
크리스 J

63

그리고 대비를 제공하기 위해 pip도 있습니다.


2
감사! python modules 설치 페이지에서 pip가 언급되지 않은 이유는 무엇입니까?
tommy chheng

pip는 계란을 지원하지 않으며 소스 패키지 만 설치합니다. 일반적으로 pip는 easy_install보다 훨씬 많은 기능을 수행하지만 easy_install은 기본적으로 대부분의 유닉스에 설치 될 가능성이 높지만 pip는 그렇지 않습니다.
Jeffrey Harris

8
@ 토미 맞아! 파이썬 개발자가 사용자 경험을 염려한다면, 패키지 관리자 (예 : pip)와 함께 파이썬을 제공 할 것입니다. 루비는 보석과 함께 제공되며 Nodejs는 Npm과 함께 제공됩니다. stackoverflow.com/a/13445719/284795
Panic Colonic

21

Ruby 및 Perl 개발자이자 Python 학습자 인 easy_install 또는 pip는 RubyGems 또는 CPAN과 동일하지 않습니다.

개발자가 업데이트 할 때 개발 시스템에서 최신 버전의 모듈을 실행하고 프로덕션 시스템을 정해진 버전으로 고정시키는 경향이 있습니다. RubyGems와 CPAN은 모두 사용 가능한 항목을 나열하여 모듈을 쉽게 찾은 다음 원하는 경우 개별적으로 또는 대량으로 설치 한 후 나중에 업데이트합니다.

easy_install 및 pip를 사용하면 브라우저 검색을 통해 찾거나 다른 방법으로 알게 된 후에 모듈을 쉽게 설치할 수 있지만 사용 가능한 항목을 알려주지는 않습니다. 업데이트 할 모듈의 이름을 명시 적으로 지정할 수 있지만 앱은 업데이트 된 내용을 알려주거나 원하는 경우 모든 것을 대량으로 업데이트하지 않습니다.

따라서 기본 기능은 pip 및 easy_install에 있지만 CPAN 및 RubyGems와 친숙하고 사용하기 쉽고 동등하게 만드는 기능이 누락되었습니다.


이 답변은 이제 훌륭하고 구식입니다.
ncoghlan


11

2014 년 말 현재 Conda를 사용한 Continuum Analytics의 Anaconda Python 배포 패키지 관리자 고려해야합니다. 그것은 하나의 응집 된 다운로드로 사람들이 일반적으로 파이썬으로 겪는 대부분의 심각한 문제 (다른 파이썬 버전 관리, 파이썬 버전 업데이트, 패키지 관리, 가상 환경, Windows / Mac 호환성)를 해결합니다.

시스템을 전혀 변경하지 않고도 Python으로 원하는 모든 것을 할 수 있습니다. 다음으로 선호되는 솔루션은 pip + virtualenv이지만 virtualenv를 시스템 Python에 설치하거나 시스템 Python이 원하는 버전이 아닐 수 있습니다 . 또는 source에서 빌드하십시오 . Anaconda는이 전체 프로세스를 한 번의 버튼 클릭으로 만들고 다른 많은 기능을 추가합니다.


7

즉 것 easy_install을을 .


1
이라고 표시된 페이지의 모든 사람을 공감 easy_install하려면 날짜를 먼저 확인하십시오. 그것은 거의 7 년 전에 주어 졌을 때 유효한 조언이었습니다 . 응답자가 업데이트를 위해 정기적으로 다시 방문 할 것이라고 생각하지 않으므로 다운 보팅은 어리 석습니다.
Kirk Strauser


5

나도 볼 수 없습니다 MacPorts를을브루은 나는 많은 사람들이 생각하는 것처럼 보인다 내 자신 US $ 0.02를 추가 할 것입니다, 여기에 다른 답변에 언급,하지만 난 않기 때문에 그들에게 관련 질문을 다른 곳에서 스택 오버플로 언급 참조 MacPorts를 뿐만 아니라 패키지 등을 일반적으로 패키지 관리자 (현재는 16311 패키지 / 포트, 2931은 "파이썬"과 일치하지만 Mac에만 해당)를 나열하지만 Python 패키지 / 모듈의 적절한 패키지 관리자로도 사용됩니다.

질문

"... Mac python 개발자가 모듈을 관리하기 위해 사용하는 방법은 무엇입니까?"

답변

사이 파이

"Linux와 달리 Mac에는 패키지 관리자가 제공되지 않지만 설치할 수있는 유명한 패키지 관리자가 몇 가지 있습니다. Macports ..."

나는 여전히 MacPorts를 사용할 것인지 아닌지에 대해 논쟁하고 있지만 지금은 그 방향으로 기울고 있습니다.


1
Homebrew 자체에 따르면 다음과 같이 Python 패키지를 설치할 수 있습니다 (구식 easy_install 또는) pip install <your_favorite_package>
Simone

4

Windows에서 http://chocolatey.org/ 를 설치 한 다음

choco install python

업데이트 된 PATH를 사용하여 새 cmd 창을 엽니 다. 다음으로

choco install pip

그 후 당신은 할 수 있습니다

pip install pyside
pip install ipython
...

나는 Thomas Bratt의 답변에 대한 의견으로 이것을 대답하고 싶었지만 평판이 충분하지 않습니다 ...
hansvb

3

여기에 pipenv 를 언급 한 사람이 없기 때문에 모든 사람들이 파이썬 패키지를 관리하기 위해 왜 그것을 사용해야하는지에 대한 견해를 설명하고자합니다.

@ColonelPanic이 언급했듯이 Python Package Indexpipvirtualenv 에도 몇 가지 문제가 있습니다.

Pipenv 는 pip 관련 문제를 대부분 해결하고 추가 기능도 제공합니다.

Pipenv 기능

Pipenv는 pip와 virtualenv를 대체하기 위해 만들어졌습니다. 즉 pipenv는 모든 프로젝트에 대해 별도의 가상 환경을 자동으로 작성하므로 프로젝트마다 다른 파이썬 버전 / 패키지 버전 간의 충돌을 피할 수 있습니다.

  • 결정적인 빌드를 가능하게하고 원하는 것만 쉽게 지정할 수 있습니다.
  • 잠긴 종속성에 대한 파일 해시를 생성하고 확인합니다.
  • pyenv를 사용할 수있는 경우 필요한 Python을 자동으로 설치하십시오.
  • Pipfile을 찾아 프로젝트를 재귀 적으로 자동으로 찾습니다.
  • Pipfile이 없으면 자동으로 생성합니다.
  • 표준 위치에 자동으로 virtualenv를 만듭니다.
  • 패키지가 설치 해제 / 설치 될 때 Pipfile에 자동으로 추가 / 제거합니다.
  • .env 파일이 있으면 자동으로로드합니다.

이전에 python 프로젝트를 수행 한 적이 있다면 이러한 기능으로 패키지 관리가 훨씬 쉬워집니다.

다른 명령

  • check보안 취약점을 확인하고 현재 환경에서 PEP 508 요구 사항을 충족하는지 확인합니다. ( 필자는 PyPi의 악성 패키지 이후 특히 훌륭한 기능이라고 생각 합니다 )
  • graph 설치된 종속성의 종속성 그래프가 표시됩니다.

자세한 내용은 여기를 참조하십시오 -Pipenv .

설치

여기 에서 설치 설명서를 찾을 수 있습니다

추신 : Python Package requests 작업을 좋아한다면 pipenv 가 동일한 개발자 Kenneth Reitz것임을 알게되어 기쁩니다.



0

는 당신이 찾고있는 것입니다. 종속성 관리, 가상 환경, 실행을 관리합니다.

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