본문 바로가기
Python/Python FAQ

Python pip를 사용하여 모든 Python 패키지를 업그레이드하는 방법, How to upgrade all Python packages with pip

by 베타코드 2023. 5. 7.
반응형

질문


pip을 사용하여 Python 패키지를 한 번에 업그레이드하는 것이 가능한가요?

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


답변


아직 내장 플래그는 없습니다. pip 버전 22.3부터 --outdated--format=freeze상호 배제적이 되었습니다. JSON 출력을 파싱하기 위해 Python을 사용하세요:

pip --disable-pip-version-check list --outdated --format=json | python -c "import json, sys; print('\n'.join([x['name'] for x in json.load(sys.stdin)]))"

pip<22.3을 사용하는 경우 다음을 사용할 수 있습니다:

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+cutsed 또는 awk 또는 perl 등으로 대체할 수 있습니다).

  • xargs-n1 플래그는 하나의 패키지 업데이트가 실패하더라도 모든 것을 중지하지 않도록합니다 (감사합니다 @andsens).


참고: 이에 대한 무한한 가능한 변형이 있습니다. 이 답변을 짧고 간단하게 유지하려고 노력하고 있지만, 의견을 제시해 주시기 바랍니다!

반응형

댓글