핍을 업그레이드 할 수 없습니다


21

저는 Linux와 Ubuntu를 처음 사용합니다.

핍을 업그레이드하려고했지만이 문제가 발생했습니다 ...

$ sudo pip install --upgrade pip
Cannot fetch index base URL https://pypi.python.org/simple/
Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.0-py2.py3-none-any.whl#md5=b108384a762825ec20345bb9b5b7209f
  Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
  Found existing installation: pip 1.5.4
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed pip
Cleaning up...

왜 그런지 알아?


2
시도 aptsudo apt-get install python-pip업그레이드pip
heemayl

흠 ... 가장 최신 버전을 말합니다 ... apt-get과 pip가 패키지를 다른 소스로 가져 오기 때문입니까? (즉, apt-get과 pypi의 차이점일까요?) 'python-pip는 이미 최신 버전입니다.'
스펜서 리

그것은 최신임을 의미합니다 ...
Tim

1
pip list --outdated pip는 다음을 반환합니다. pip (현재 : 1.5.4 최신 : 7.1.0) python-apt 요구 사항을 충족하는 다운로드를 찾을 수 없습니다 일부 외부 호스팅 파일이 무시되었습니다 (사용 --allow- 외부 Python-apt 허용).
스펜서 리

답변:


3

편집하다:

pip install -U pip

또는

pip install --upgrade pip

-U의 줄임말입니다 --upgrade.


오래된 답변 :

apt시스템 PyPI은 서로 다른 두 가지 메커니즘을 사용합니다.

우분투 리포지토리에서 많은 모듈을 python패키지로 사용할 수 있지만 PyPI (Python Package Index) 와 비교할 때 많은 모듈 이 없습니다. . 패키지 업그레이드에 대한 일관성을 유지하려면 처음에 패키지를 설치하는 데 사용한 방법을 고려해야합니다.

따라서 패키지 (모듈)를 PyPI사용하여 설치 한 경우 패키지 ( 자체 포함 ) 를 업그레이드하는 pip데 사용해야합니다 . 반면에 시스템을 사용하여 모듈을 패키지로 설치 한 경우 다시 업그레이드하는 데 사용해야 합니다.pipPyPIpipaptapt

간단히 말해서 다음을 실행 python-pip하여 최신 버전 으로 업그레이드 하십시오.

sudo apt-get install python-pip

4
이것은 질문에 대답하지 않습니다. python-pip는 pip를 업그레이드하지 않으며 pip 자체를 업그레이드 할 수없는 방식으로 아주 오래된 pip 버전 만 설치합니다.
Cerin

@Cerin 당신은 답을 철저히 읽었습니까? python-pip는 (공식) Universe 저장소의 패키지이지만에서 easy_install설치합니다 PyPI. 항상 공식 저장소에는 시스템을 안정적으로 유지하고 종속성을 해결하기 위해 최신 패키지가 포함되어 있지 않습니다.
heemayl

6
OP @heemayl, OP는 pip를 업그레이드하는 방법을 물었고 이전 버전의 pip를 설치하도록 효과적으로 지시했습니다. 올바른 해결책은 python-pip를 제거하고 PyPI에서 설치하는 것입니다. python-pip를 설치해도 pip는 업그레이드되지 않습니다.
Cerin

22

다음과 easy_install같이 설치하십시오 .

easy_install -U pip

1
이 답변이 여전히 유효한지 확실하지 않습니까? Stack Overflow에 대한 이 게시물 은 "easy_install을 통해 pip를 사용하는 이유는 무엇입니까?"에 대한 질문 중 하나입니다. OS X 10.5-10.8이 설치된 버전 "
clearkimura

1
질문에 중점을두고 질문은 '핍을 업그레이드 할 수 없습니다'이며 easy_install을 통한 업그레이드 방법을 제안합니다 .2015 년 12 월에 작동합니까?
NamPNQ

downvoters에게 왜이 답변이 앞서 downvoted되었는지 설명합니까? 나는 이 글 에서 최근의 코멘트를 찾을 수 있었다. "ByteCommander 제안에서 easy_install -U pip가 나를 위해 일했다. – Tampa Jun 1 at 12:23". 이 easy_install방법은 일부 사용자에게 효과적입니다.
clearkimura

1
이것은 (와 함께 sudo) 나를 위해 일했습니다 . 이전에, sudo apt-get install python-pip저를주고 있었다 python-pip is already the newest version (8.1.1-2ubuntu0.4)9.0.1이 가능했던 반면,하지만 설치할 수 없습니다 pip install --upgrade pip(8.1.1에서 변경되지 않은 버전을 왼쪽한다). easy_install버전이 업그레이드 된 후 .
Kurt Peek

이것은 작동하지만 시스템 관리 파일 을 최신 pip버전으로 대체 합니다 . python-pip패키지를 다시 설치 하면 파일이 다시 바뀝니다. 존재하고 올바른 패키지 버전에 의존하는 다른 코드는 깨질 수 있으며 (작지만 0이 아닌 가능성) 나중에 방해가 될 수있는 새로운 버전으로 업그레이드 할 때 제거되지 않는 추가 파일을 easy_install추가 할 수 있습니다 . python-pip
Martijn Pieters

7

나는 오랫동안 같은 문제가 있었고 오늘 해결책을 알아 냈습니다. python-pip를 통해 pip를 설치하면 더 이상 사용되지 않는 Linux 서버에서 다운로드합니다. 파이썬 서버에서 다운로드해야합니다. 이를 해결하려면 다음을 수행하십시오.

sudo apt-get purge pip
sudo apt-get install python-setuptools
sudo apt-get install python-dev 
sudo easy_install pip 
pip install pip --upgrade 

1
문제의 원인을 설명해 주셔서 감사합니다. 아래로 스크롤 하여이 답변을보기 전에 스스로 알아 내야했습니다.
G Gordon Worley III

이 명령 (2-3)이 잘못되었습니다.
Joel G Mathew

@JoelGMathew는 apt-get 후에 단어 설치
만하면됩니다

2

실제로 'pip'스크립트를 편집 할 수 있습니다.

루트에서 :

$ which pip  # -> prints 'pip' location

$ nano `which pip` # -> open with your editor, note the backticks!

다음 __requires__과 같이 최신 pip 버전으로 바꾸십시오 .

__requires__ = 'pip==7.1.2'

'load_entry_point'호출로 편집 줄보다 :

load_entry_point(__requires__, 'console_scripts', 'pip')()

과:

$pip -V
pip 7.1.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)

또한 일부 패키지를 설치하려면 setuptools 패키지 를 업데이트 해야합니다.


2

이는와 같은 시스템 패키지가 python-pip제공하는 pip 버전과 pip 자체를 통해 PyPI가 제공하는 버전 간의 충돌로 인해 발생 합니다.

이 문제를 해결하려면 제거 python-pip와 함께 sudo apt-get purge python-pip.

이전 버전의 pip를 이미 사용하여 최신 버전을 설치 한 경우 업데이트 된 버전은에 그대로 두어야합니다 /usr/local/bin. 그렇지 않은 경우 다음을 사용하여 최신 버전의 Pip을 처음부터 설치할 수 있습니다.

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python2.7

1

이 링크 를 사용 하여 업그레이드하십시오. 원래:

  1. 파일 다운로드 get-pip.py
  2. 운영 python get-pip.py

1

실행 해보십시오 sudo -H pip3 install --upgrade pip(파이썬 3) 당신의 pip3를 업그레이드 할 수 있습니다. 반대로, sudo -H pip2 install --upgrade pippip도 업그레이드 할 수 있습니다 (Python 2의 경우).


1

내가 ssh 한 원격 컴퓨터에서 작업 할 때이 문제가 발생했습니다. 방금 python 3을 설치했으며 pip와 apt-get을 통해 업그레이드를 시도했지만 pip를 업그레이드 할 수 없었습니다.

원격 서버에서 로그 아웃했다가 다시 로그인하면 해결되었습니다.


0

python-pipsudo 사용자 실행으로 apt 저장소에서 설치 한 경우 sudo -H install --upgrade pipPIP 모듈 설치와 동일합니다.

여기 16.04의 콘솔 출력

..... Successfully installed requests
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
:~$ pip install --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 672kB/s 
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
:~$ sudo -H pip install --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 692kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-9.0.1
:~$ 

pip의 -H 플래그 란 무엇입니까?를 참조하십시오 . /programming/28619686/what-is-the-h-flag-for-pip


0

나는 초보자 일 뿐이므로 확실하지 않지만 아마도 파이썬 2와 3의 차이점과 관련이있을 것입니다. 수퍼 유저 일 필요는 없지만 업그레이드 pip3대신 쉽게 사용할 수 있다고 생각합니다 . pippippip3 install --upgrade pip


0

pip 9.0.3을 18.0 버전으로 업그레이드하는 데 비슷한 문제가 있습니다.

따라서 업그레이드시 첫 번째 제거가 수행 된 후 최신 버전이 설치됩니다. 그러나 첫 번째 시도에서 "pip-9.0.3이 성공적으로 제거되었습니다"라고 표시되었습니다.

후속 시도에서 동일한 오류가 발생합니다. pip-9.0.3이 제거 되었기 때문입니다. 허용 된 답변과 마찬가지로 Windows 10 시스템에서 관리자로 pip를 설치하고 최신 버전을 얻은 다음 모든 것이 잘되었습니다.

이것이 도움이되기를 바랍니다.

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