pip를 최신으로 업그레이드하는 방법?


51

오류가 발생 get-pip.py하면 pip를 설치했습니다.pip freeze

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
    req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 299, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

Storing debug log for failure in /home/simon/.pip/pip.log

그래서 1.7이 최신 버전인지 확인했습니다. 아래 단계를 따라도 업데이트되지 않는 경우 ... 여기에서 도와주세요 ...

simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip install -U pip
Downloading/unpacking pip
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
Successfully installed pip
Cleaning up...
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)

1
sudo -H pip3 install --upgrade pip
moldovean

답변:


54

나는 보통 다음 명령을 실행하여 pip2(= pip기본적으로)와 pip3:

sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pip

pip번호없이 명령에 반응하려는 버전 (Python 2 또는 3의 경우)을 마지막으로 업그레이드해야합니다 .

또한 이전 패키지 버전 apt-get은 다른 패키지 관리자를 통해 설치된 상태로 유지 하지만 시스템 패키지와 관련이없는 새 버전을 추가합니다. 설치된 pip패키지가 선호되지만 apt-get패키지 관리자는 다른 pip버전이 설치되어 있음을 알 수 없으므로 설치된 패키지를 제거해서는 안됩니다 .


3
집에 돌아가는 것이 왜 중요 sudo -H합니까?
Léo Léopold Hertz 준영

11
@Masi pip다운로드 한 파일을 캐시 할 위치에 쓰려고합니다. 현재 사용자 홈 디렉토리의 하위 폴더에 배치하도록 구현되었습니다. -H현재 설정되어있는 홈 디렉토리 (일반 사용자)가 (루트)로 실행하는 사용자와 일치하지 않음을 감지하기 때문에 이를 사용하지 않고 실행 하면 불만이 표시됩니다. 홈 디렉토리에 파일을 쓴 경우, 루트가 소유하고 더 이상 일반 사용자로서 액세스 할 수 없습니다. 따라서이 경우 파일을 캐시하지 않습니다. -Hpip감지하고 경고 하는 것은 끔찍한 일이 아닙니다 .
바이트 사령관

1
왜 두 명령이 명령을 덮어 쓰는가 pip? 업그레이드 pip2할 때 pip2명령을 업그레이드하지 않습니다 pip.
Yep_It's_Me

@ Yep_It's_Me 이것은 pip호출하는 파이썬 버전과 관련 이 있기 때문 입니다. 그의 명령은 이유이고 pip2& pip3각각 주사위를 업데이트 파이썬의 적절한 버전을 호출합니다. 말이 돼?
JayRizzo

27

제 생각에는

pip install --upgrade pip

명령이 더 이상 제대로 작동하지 않습니다. 올바른 명령은 다음과 같아야합니다.

  • 파이썬 3의 경우 :

    python3 -m pip install --upgrade pip
  • 파이썬 2의 경우 :

    python2 -m pip install --upgrade pip

Gg @ david-foerster
JayRizzo

Linux에서는 다음을 사용 pip install -U pip하십시오 ( pip 업그레이드 참조 )
Eido95

1
루트에서 pip를 업데이트 할 때 문제가 발생했습니다 (Docker 이미지에서). 이것은 매력처럼 작동했습니다.
Cristian Ramon-Cortes

리눅스 민트에서 매력처럼 작동
HelloWorld

5

이 웹 사이트로 이동 https://pypi.python.org/pypi/pip

소스 링크 복사 (또는 .tar.gz로 끝남)

9.0.1의 경우 링크는 https://pypi.python.org/pypi?:action=show_md5&digest=35f01da33009719497f01a4ba69d63c9입니다.

설치 절차

wget //link goes here
tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python3 setup.py install

버전을 최신 버전으로 변경하고 링크를 최신 버전의 링크로 업데이트 할 수 있습니다

이 작동합니다


다른 모든 것들은 쉘에서 서버에 연결해야하기 때문에 유일한 오류입니다. 이는 동일한 오류로 다시 실패합니다.
Alok Rajasukumaran


1

아래에서 설명하는 것은 pip 가 Python 2 를 가리키고 pip3 이 Python 3을 가리킬 것으로 기대하는 경우에 언급 할 가치가 있다고 생각합니다. 내가 언급 한 이유는 pip3을 업그레이드 할 때 pip 명령을 대신하기 때문입니다. 잘. 기본적으로 python 은 2.x를 가리키고 python3 은 3.x를 가리 키기 때문에 다소 이상한 규칙입니다 . 그 말은 ...

최신 버전의 python 2.x pip 및 python 3.x pip3을 동일한 머신에 공존 시키려면 (2.x에는 pip를 사용하고 3.x에는 pip3을 사용) 다음을 수행해야합니다.

sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force
sudo python -m pip install pip --upgrade --force # this line associates pip with Python 2

다른 사람들이 제공 한 다른 답변은 sudo pip3 install pip --upgrade 를 실행 하면 python 2.x 디렉토리 대신 python 3.x 디렉토리에 패키지를 설치 하는 pip 명령으로 끝납니다 .

내 일부는 pip3 (pip-> pip3)을 업그레이드 한 후에 pip를 그대로 두어야한다고 생각하지만 사람들이 이미 pip가 python 2.x를 가리키는 python과 같은 기능을 기대할 위험이 있습니다. 다시 말해, 사람들은 python 3.x에 pip3 / python3 을 사용하도록 훈련 된 것처럼 python 2.x에 pip / python 을 사용하도록 훈련되었을 것입니다 .


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