파이썬 패키지를 어떻게 업데이트합니까?


234

Ubuntu 9:10을 실행 중이며 M2Crypto라는 패키지가 설치되어 있습니다 (버전은 0.19.1). 최신 버전의 M2Crypto 패키지 (0.20.2)를 다운로드하여 빌드하고 설치해야합니다.

0.19.1 패키지에는 (/ usr / share / pyshared 및 /usr/lib/pymodules.python2.6)을 포함한 여러 위치에 파일이 있습니다.

0.20.2를 설치하기 전에 시스템에서 0.19.1 버전을 완전히 제거하려면 어떻게해야합니까?

답변:


54

pip 와 같은 Python 패키지 관리자를 살펴볼 수 있습니다 . Python 패키지 관리자를 사용하지 않으려면 M2Crypto를 다운로드하고 이전 설치에서 빌드 / 컴파일 / 설치할 수 있어야합니다.


1
감사. 당신이 말한 것. 0.19.1을 제거하지 않고도 0.20.2를 빌드하고 설치했습니다.
톰슨

461

내가 찾은 가장 좋은 방법은 터미널 에서이 명령을 실행하는 것입니다

sudo pip install [package_name] --upgrade

sudo 작업을 확인하기 위해 루트 암호를 입력하라는 메시지가 표시됩니다.


참고 : 일부 사용자는 대신 pip3을 설치했을 수 있습니다. 이 경우에는

sudo pip3 install [package_name] --upgrade

4
인증없이 프록시를 사용하는 경우 : sudo pip install [package] --upgrade --proxy = address : port
lmsasu

32
이 답변을 위해 여기에 왔습니다. 나는 여기에서 볼 때까지 노력 pip update했고 pip upgrade필사적이었다 --upgrade. 왜 pip upgrade명령 을 추가하지 않습니까?
Lars Blumberg

9
이것은 실제로 잘 숨겨진 기능입니다.
otocan

1
Windows 사용자의 경우 : sudo필요하지 않습니다.
Stevoisiak

2
이것은 답변 # 1이어야합니다
Cord Kaldemeyer

48

pip를 사용하여 설치된 모든 오래된 패키지를 자동으로 업그레이드하려면 다음 스크립트를 실행하십시오.

pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

여기에 pip list --outdated날짜가 지난 패키지가 모두 나열되고 awk로 파이프되므로 이름 만 인쇄됩니다. 그런 다음 $(...)변수를 변수로 만들고 모든 것이 자동으로 수행됩니다. 권한이 있는지 확인하십시오. ( sudo혼동하는 경우 pip 앞에 두십시오. )라는 스크립트를 작성합니다 pip-upgrade . 코드는 다음과 같습니다.

#!/bin/bash
sudo pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

그런 다음 다음 스크립트 줄을 사용하여 준비하십시오.

sudo chmod +x pip-upgrade
sudo cp pip-upgrade /usr/bin/

그런 다음, 그냥 쳐라 pip-upgrade!


마지막 대괄호를 가리키는 구문 오류가 있습니다.awk: cmd. line:1: { print $1 })
TT--

7
@TT 최신 버전의 pip경우 --format=legacy옵션 (예 :) 을 사용해야합니다 pip list --outdated --format=legacy. 참고로 pip를 통해 모든 모듈을 맹목적으로 업데이트하는 것은 많은 Linux 배포판에서 매우 위험 할 수 있습니다. 그들 중 많은 사람들이 배포판 패키지를 통해 특정 파이썬 모듈을 제공하고 똥을 업데이트하면 그 배포판 (특히 RHEL) 중 일부가 열심히 깨질 수 있습니다 ... 핍을 통해 업데이트하면 배포판 패키지가 변경 사항을 되돌릴 수 있다는 사실은 말할 것도 없습니다. 향후 업데이트.
rsaw December

감사합니다 @rsaw. 그는 --user 옵션으로 pip 명령을 실행해야합니다.
Fahim Ferdous

1
나는이 대답을 좋아하지만 모든 것을 자동으로 업데이트하는 위험을 이해합니다. 어쨌든 레거시는 pip 19.0에서 사용되지 않기 때문에 pip install $ (pip list --outdated --format = columns | grep -v "Package"| grep -v----- | awk '{print $ 1}')-
마이크 v

2
Ubuntu 18.04 venv에 대해 작업하려면 다음과 같이하십시오.pip install $(pip list --outdated | tail +3 | grep -v sdist | awk '{ print $1 }') --upgrade
Alexander Remesch

34
  1. Windows 명령 프롬프트를 통해 다음을 실행 pip list --outdated 하십시오. 오래된 패키지 목록이 표시됩니다.
  2. 실행 : 이전 버전을 pip install [package] --upgrade 업그레이드 [package]하고 제거합니다.

pip를 업데이트하려면

py -m pip install --upgrade pip

다시 말하지만 이전 버전의 pip를 제거하고 최신 버전의 pip를 설치합니다.


29
  • 방법 1 : 하나씩 수동 업그레이드

pip install package_name -U
  • 방법 2 : 한 번에 모두 업그레이드 (일부 패키지가 업그레이드되지 않은 경우 높은 롤백

pip install $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1) --upgrade
  • 방법 3 : 루프를 사용하여 하나씩 업그레이드

for i in  $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1); do pip install $i --upgrade; done


9

pipupgrade를 사용하십시오 !

$ pip install pipupgrade
$ pipupgrade --latest --interactive

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

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

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


1
이 도구를 사용할 때마다 "[0; 93mChecking ... [0m" "이라는 응답이 표시되며 아무 것도 수행하지 않습니다. 잘못 사용하고 있습니까?
Violatic

MacPorts와 함께 Mac을 사용합니다. 파이썬 3.7을 사용하면 pipupgrade는 50 개 중 5 개 패키지에서만 작동했으며 나머지는 이것을 사용해야했습니다 pip3.7 list --outdated | sed -n -e '3,$s/ .*//p'. pip3.7 install --upgrade $ i; 완료
Michael Dreher

4

패키지는 원래 어떻게 설치 되었습니까? 그것이 apt를 통해 있었다면, 당신은 할 수 있습니다.apt-get remove python-m2crypto

easy_install을 통해 설치 한 경우 lib, 공유 등에서 파일을 휴지통에 버리는 것이 유일한 방법입니다.

미래에 나의 추천? pip 와 같은 것을 사용하여 패키지를 설치하십시오. 또한 virtualenv 라는 것을 찾아 패키지가 루트가 아닌 환경별로 저장 될 수 있습니다.

pip를 사용하면 매우 쉽습니다.

pip install m2crypto

그러나 올바른 주소로 git, svn 등 repos에서 설치할 수도 있습니다. 이것은 모두 pip 문서에 설명되어 있습니다


파일이 설치된 위치를 설명하는 방법은 apt 패키지 관리자를 사용하여 패키지가 설치되었음을 나타냅니다. (Debian AFAIK에서 apt는 자신이 나열된 두 위치 아래에 / py / package / ..는 공유 코드를위한 python 패키지를 설치하기 때문입니다. 버전 별 및 / usr / lib / .. 버전 별 부품. 반면에 easy-install / pip는 / usr / local / lib / ..를 사용합니다. 말했듯이 apt-get remove가 그를 수행했을 것입니다.
바젤 시사 니


3

Juptyer 노트북에서 매우 간단한 방법은

!pip install <package_name> --upgrade

따라서 실제 패키지 이름으로 바꾸면됩니다.


2

모든 오래된 패키지를 가져오고 다음 명령을 사용하여 배치 파일을 만듭니다. pip install xxx-각 오래된 패키지마다 업그레이드

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