반응형

모든 파이썬 패키지를 PIP로 업그레이드하는 방법


질문

 

PIP로 한 번에 모든 파이썬 패키지를 업그레이드 할 수 있습니까?

참고 : 공식 이슈 트래커 에서이 기능 요청이 있습니다.


답변

 

아직 내장 된 플래그가 없지만 사용할 수 있습니다.

pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

참고 : 이에 대한 무한한 잠재적 변형이 있습니다.나는이 답변을 짧고 간단하게 유지하려고 노력하고 있지만, 의견에 변형을 제시하십시오!

이전 버전의 PIP에서 대신 사용할 수 있습니다 :

pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

grep은 @jawache가 제안한대로 편집 가능한 편집 가능 ( "-e") 패키지 정의를 건너 뜁니다.(예, Grep + Cut을 SED 또는 AWK 또는 Perl 또는 ...)으로 대체 할 수 있습니다.

Xargs의 -N1 플래그는 하나의 패키지를 업데이트하는 경우 모든 것을 중지하는 것을 방지합니다 (감사 @andsens).



답변

다음은 Windows에서 작동하며 다른 사람에게도 좋습니다 ($는 명령 프롬프트에서 입력 한 디렉토리입니다. 예 : C : / Users / Username).

하다

$ pip freeze > requirements.txt

텍스트 파일을 열고 ==> =를 눌러 또는 SED를 사용하십시오.

$ sed -i 's/==/>=/g' requirements.txt

다음을 실행하십시오.

$ pip install -r requirements.txt --upgrade

특정 패키지가 업그레이드 (때로는 숫자)가 설치된 경우 디렉토리 ($)로 이동하여 이름을 주석 처리하고 이전에 업그레이드를 다시 실행하십시오.나중에 그 섹션을 다시 주석 제거 할 수 있습니다.이것은 Python 글로벌 환경을 복사하는 것도 좋습니다.


또 다른 방법:

나는 또한 PIP 검토 방법을 좋아합니다 :

py2
$ pip install pip-review

$ pip-review --local --interactive

py3
$ pip3 install pip-review

$ py -3 -m pip-review --local --interactive

모든 패키지를 업그레이드하려면 'A'를 선택할 수 있습니다.하나의 업그레이드가 실패하면 다시 실행하면 다음과 같이 계속됩니다.



답변

pipupgrade를 사용하십시오!

$ pip install pipupgrade
$ pipupgrade --verbose --latest --yes

Pipupgrade는 요구 사항 .txt 파일에서 시스템, 로컬 또는 패키지를 업그레이드하는 데 도움이됩니다!또한 변경되지 않는 패키지를 선택적으로 업그레이드합니다.

Pipupgrade는 또한 여러 파이썬 환경에서 현재있는 패키지를 업그레이드 할 수 있습니다.파이썬 2.7+, Python 3.4+ 및 PIP 9+, PIP 10+, PIP 18+, PIP 19+와 호환됩니다.

python

참고 : 나는 도구의 저자입니다.



답변

다음 Python 코드를 사용할 수 있습니다.PIP Freeze와 달리 경고 및 Fixme 오류를 인쇄하지 않습니다. PIP 용 <10.0.1.

import pip
from subprocess import call

packages = [dist.project_name for dist in pip.get_installed_distributions()]
call("pip install --upgrade " + ' '.join(packages), shell=True)

PIP 용> = 10.0.1.

import pkg_resources
from subprocess import call

packages = [dist.project_name for dist in pkg_resources.working_set]
call("pip install --upgrade " + ' '.join(packages), shell=True)


답변

모든 로컬 패키지를 업그레이드합니다.PIP 검토를 사용할 수 있습니다 :

$ pip install pip-review
$ pip-review --local --interactive

PIP-Review는 PIP 공구의 포크입니다.@knedlsepp가 언급 한 PIP-TOOLS 문제를 참조하십시오.PIP 검토 패키지 작동하지만 PiP-Tools 패키지는 더 이상 작동하지 않습니다.

버전 0.5 이후로 PIP 검토 Windows에서 작동합니다.



답변

나는 업그레이드와 동일한 문제가있었습니다.일은 결코 모든 패키지를 업그레이드하지 않습니다.프로젝트가 중단되기 때문에 필요한 내용 만 업그레이드합니다.

패키지로 패키지를 업그레이드하고 요구 사항 .txt 파일을 업데이트하는 데 쉬운 방법이 없었기 때문에이 PIP 업그레이드가 선택한 패키지 (또는 모든 패키지)에 대한 요구 사항 .txt 파일의 버전을 갱신합니다.

설치

pip install pip-upgrader

용법

VirtualEnv를 활성화하십시오 (중요, 현재 VirtualEnv에서 업그레이드 된 패키지의 새 버전을 설치하므로).

CD를 프로젝트 디렉토리에 넣은 다음 실행 :

pip-upgrade

고급 사용법

요구 사항이 비표준 위치에 배치되면 인수로 보내십시오.

pip-upgrade path/to/requirements.txt

업그레이드 할 패키지를 이미 알고 있으면 인수로 보내주십시오.

pip-upgrade -p django -p celery -p dateutil

사전 릴리스 / 사후 릴리스 버전으로 업그레이드 해야하는 경우 명령에 --prerrelease 인수를 추가하십시오.

전체 공개 :이 패키지를 썼습니다.

출처:https://stackoverflow.com/questions/2720014/how-to-upgrade-all-python-packages-with-pip
반응형