[python] pip로 모든 Python 패키지를 업그레이드하는 방법은 무엇입니까?

?로 모든 Python 패키지를 한 번에 업그레이드 할 수 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+ cutsedor awk또는 perlor 또는 …로 바꿀 수 있습니다.)

-n1에 대한 플래그를 xargs하나 개의 패키지를 업데이트하는 경우 모든 것을 중단 방지는 (감사 실패 @andsens을 ).


답변

다음 Python 코드를 사용할 수 있습니다. 와 달리 pip freeze경고 및 FIXME 오류는 인쇄하지 않습니다.
핍 <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)

핍> = 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-review:

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

pip-review의 포크입니다 pip-tools. @knedlsepp에서 언급 한 pip-tools문제를 참조하십시오 . 패키지는 작동하지만 패키지는 더 이상 작동하지 않습니다.pip-reviewpip-tools

pip-review버전 0.5부터 Windows에서 작동합니다 .


답변

Windows에서 작동합니다. 다른 사람들에게도 좋을 것입니다. ($는 명령 프롬프트에있는 디렉토리입니다 (예 : C : / Users / Username>)

하다

$ pip freeze > requirements.txt

텍스트 파일을 열 교체 ==>=및 실행

$ pip install -r requirements.txt --upgrade

업그레이드를 중단시키는 특정 패키지에 문제가있는 경우 (때로는 숫자가 많음) 디렉토리 ($)로 이동하여 이름을 주석 처리하고 (# 앞에 추가) 업그레이드를 다시 실행하십시오. 나중에 해당 섹션의 주석을 해제 할 수 있습니다. 이것은 파이썬 글로벌 환경을 복사하는 데에도 좋습니다.


또 다른 방법:

나는 또한 pip-review 방법을 좋아합니다.

py2
$ pip install pip-review

$ pip-review --local --interactive

py3
$ pip3 install pip-review

$ py -3 -m pip_review --local --interactive

‘a’를 선택하여 모든 패키지를 업그레이드 할 수 있습니다. 한 번의 업그레이드가 실패하면 다시 실행하고 다음 번에 계속하십시오.


답변

Rob van der Woude의 훌륭한 문서FOR참조한 후의 Windows 버전

for /F "delims===" %i in ('pip freeze -l') do pip install -U %i


답변

pipupgrade를 사용하십시오 !

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

pipupgraderequirements.txt파일 에서 시스템, 로컬 또는 패키지를 업그레이드하는 데 도움이 됩니다! 또한 변경 사항을 위반하지 않는 패키지를 선택적으로 업그레이드합니다. pipupgrade는 또한 여러 Python 환경에 존재하는 패키지를 업그레이드합니다. Python2.7 +, Python3.4 + 및 pip9 +, pip10 +, pip18 +, pip19 +와 호환됩니다.

여기에 이미지 설명을 입력하십시오

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


답변

오래된 패키지 만 인쇄 할 수 있습니다.

pip freeze | cut -d = -f 1 | xargs -n 1 pip search | grep -B2 'LATEST:'