programing

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

codeshow 2023. 7. 31. 22:02
반응형

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

에 패키지시스템이 요? 가 루비젬을 있는 에서 파이썬을 할 수 요?gem install packagename?

Python Modules 설치에서 다음에 대한 참조만 표시됩니다.python setup.py install하지만 그것은 당신이 먼저 소포를 찾아야 합니다.

최근 진행 상황

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

pip install httpie

와헤이! 이것은 모든 파이썬 릴리즈의 최고의 기능입니다.그것은 지역사회의 풍부한 도서관을 모든 사람들이 이용할 수 있도록 만듭니다.초보자는 설정의 엄청난 어려움으로 인해 더 이상 커뮤니티 라이브러리 사용에서 제외되지 않습니다.

그러나 Python 패키징 경험에 대한 많은 해결되지 않은 좌절이 남아 있습니다.누적적으로, 그들은 파이썬을 초보자들에게 매우 달갑지 않게 만듭니다.또한, 오랜 무시의 역사(즉.Python 2.0에서 Python 3.3까지 14년 동안 패키지 관리자와 함께 배송되지 않음)는 커뮤니티에 손상을 입혔습니다.저는 두 가지를 모두 아래에 설명합니다.

해결되지 않은 불만 사항

경험이 풍부한 사용자는 이러한 문제를 해결할 수 있지만 Python을 처음 접하는 사용자에게는 상당한 장벽이 된다는 점을 이해하는 것이 중요합니다.사실, 어려움과 일반적인 사용자 친화적이지 않은 것은 그들 중 많은 사람들을 단념시킬 가능성이 있습니다.

PyPI 웹 사이트는 도움이 되지 않습니다.

패키지 관리자가 있는 모든 언어에는 커뮤니티가 패키지를 다운로드하고 게시할 수 있는 공식(또는 준공식) 리포지토리가 있습니다.Python에는 Python 패키지 인덱스, 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을 풀 도 있지만, 해서 압축을 풀 수도 있다면 파일을 합니다.setup.py 구글의 으로.setup.py install어떤 사람들은 포기하고 바퀴를 다시 만들 것입니다.

물론, 이 모든 것은 틀렸습니다.패키지를 설치하는 가장 쉬운 방법은 Pip 명령을 사용하는 것입니다.하지만 PyPI는 Pip에 대해서도 언급하지 않았습니다.대신, 그것은 그들을 구식이고 지루한 길로 이끌었습니다.

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

Numpy는 Python의 가장 인기 있는 라이브러리 중 하나입니다.Pip로 설치하려고 하면 다음과 같은 암호화된 오류 메시지가 표시됩니다.

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

스택 오버플로에 대한 가장 일반적인 질문 중 하나인 "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만 나열합니다.

역사

"배터리 포함" 모토를 무시한 Python은 2014년까지 패키지 관리자 없이 배송되었습니다.

핍 이전까지 사실상의 표준은 명령이었습니다.easy_install그것은 비참할 정도로 불충분했습니다.패키지를 제거하는 명령이 없습니다.

핍은 엄청난 발전이었습니다.그것은 루비의 젬의 대부분의 특징을 가지고 있었습니다.안타깝게도 최근까지 Pip은 아이러니하게도 설치하기가 어려웠습니다.실제로 스택 오버플로에서 문제는 "Windows에 pip을 설치하려면 어떻게 해야 합니까?"라는 파이썬의 최우선 질문으로 남아 있습니다.

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

PyPI(Python Package Index)가 표준인 것 같습니다.

  • 패키지 설치하기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

참조:

Ruby 및 Perl 개발자이자 Python 학습 담당자로서, 저는 rubyGems 또는 CPAN과 동등한 easy_install 또는 pip을 찾지 못했습니다.

저는 개발자들이 최신 버전의 모듈을 업데이트할 때 개발 시스템을 계속 실행하고 운영 시스템을 정해진 버전으로 동결하는 경향이 있습니다.RubyGems와 CPAN 모두 사용 가능한 것을 나열하여 모듈을 쉽게 찾을 수 있도록 한 다음, 개별적으로 또는 원하는 경우 대량으로 설치하고 업데이트합니다.

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

따라서 기본 기능은 pip 및 easy_install에 있지만 CPAN 및 RubyGems와 동등하게 사용하기 쉽고 편리한 기능이 누락되어 있습니다.

최소 두 개 이상의 easy_install과 후속 pip이 있습니다.

적어도 2014년 말부터 Conda 패키지 관리자를 포함한 Continuum Analytics의 아나콘다 파이썬 배포를 고려해야 합니다.일반적으로 사용자가 Python에서 마주치는 대부분의 심각한 문제(다양한 Python 버전 관리, Python 버전 업데이트, 패키지 관리, 가상 환경, Windows/Mac 호환성)를 하나의 통합 다운로드로 해결합니다.

시스템을 변경할 필요 없이 Python으로 원하는 모든 작업을 수행할 수 있습니다.다음으로 선호하는 솔루션은 pip + virtualenv이지만 시스템 Python(및 시스템 Python이 원하는 버전이 아닐 수 있음)에 virtualenv를 설치하거나 소스에서 빌드해야 합니다.아나콘다는 이 모든 과정을 버튼 클릭 한 번으로 만들 뿐만 아니라 여러 가지 다른 기능을 추가합니다.

그것은 쉬운 설치가 될 것입니다.

셋업 툴이라고 합니다."easy_install" 명령을 사용하여 실행합니다.

디렉토리는 http://pypi.python.org/ 에서 찾을 수 있습니다.

여기 다른 답변에 언급MacPorts 또는 Homebrew는 없지만 Stack Overflow의 다른 곳에서 관련 질문에 대해 언급된 것을 볼 수 있기 때문에, 많은 사람들이 MacPorts를 일반적인 패키지 관리자뿐만 아니라 패키지 관리자로 간주하는 것처럼 보이는 $0.02를 추가하겠습니다(오늘날 기준으로 "python"과 일치하는 16311개의 패키지/포트, 2931개, albals).Mac에만 해당), Python 패키지/모듈에 대한 적절한(아마도 더 나은) 패키지 관리자로서도 사용할 수 있습니다.

질문.

"...Macpython 개발자가 모듈을 관리하는 데 사용하는 방법은 무엇입니까?"

답들

SciPy

"Mac은 (리눅스와 달리) 패키지 관리자가 함께 제공되지 않지만, 몇 가지 인기 있는 패키지 관리자를 설치할 수 있습니다.Mac 포트...."

맥포트를 직접 사용해야 할지 말아야 할지 아직 고민 중이지만, 지금은 그런 방향으로 기울고 있습니다.

Windows에서 http://chocolatey.org/ 을 설치합니다.

choco install python

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

choco install pip

그 후에 당신은 할 수 있습니다.

pip install pyside
pip install ipython
...

여기서는 아무도 pipenv를 언급하지 않았기 때문에, 저는 왜 모든 사람들이 python 패키지를 관리하기 위해 그것을 사용해야 하는지 제 견해를 설명하고 싶습니다.

@ColonelPanic에서 언급했듯이 파이썬 패키지 Index와 pip 및 virtualenv에도 몇 가지 문제가 있습니다.

Pipenv는 대부분의 문제를 Pip로 해결하고 추가 기능도 제공합니다.

Pipenv 피쳐

Pipenv는 pip 및 virtualenv를 대체하기 위한 것으로, 이는 pipenv가 모든 프로젝트에 대해 별도의 가상 환경을 자동으로 생성하여 서로 다른 프로젝트에 대한 서로 다른 python 버전/패키지 버전 간의 충돌을 방지한다는 것을 의미합니다.

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

이전에 python 프로젝트를 수행한 적이 있다면 이러한 기능이 패키지 관리를 훨씬 더 쉽게 한다는 것을 알게 될 것입니다.

기타 명령

  • check보안 취약성을 확인하고 현재 환경에서 PEP 508 요구 사항을 충족하고 있다고 주장합니다.(특히 이후에 좋은 기능이라고 생각합니다 - PyPi악성 패키지)
  • graph에서는 설치된 종속성에 대한 종속성 그래프를 보여 줍니다.

당신은 여기에서 그것에 대한 더 많은 것을 읽을 수 있습니다 - Pipen.

설치

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

추신: Python Package 요청으로 작업하는 것이 좋다면, 같은 개발자 Kenneth Reitz의 pipenvis를 알게 되어 기쁩니다.

2019년 시는 당신이 찾고 있는 패키지와 의존성 관리자입니다.

https://github.com/sdispater/poetry#why

현대적이고 단순하며 신뢰할 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/2436731/does-python-have-a-package-module-management-system

반응형