Как обновить pip до последней версии?


51

Я установил пип с использованием get-pip.pyпосле этого 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 - обновить версию pip
moldovean

Ответы:


54

Обычно я просто запускаю следующие команды для обновления pip2(= pipпо умолчанию) и pip3:

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

Вы должны убедиться, что вы обновляете версию (для Python 2 или 3), которую вы хотите отреагировать на команду pipбез номера, в последнюю очередь.

Также обратите внимание, что при этом старые упакованные версии apt-getостаются установленными через любой другой менеджер пакетов, но добавляются новые версии, которые не имеют ничего общего с системными пакетами. В pipбудут предпочтительнее -установлены пакеты, но вы не должны удалять apt-get-установлены те либо, потому что менеджер пакетов не может знать , что любая pipверсия установлена в противном случае.


3
Почему важно поселиться в доме sudo -H?
Лео Леопольд Герц

11
@Masi Потому что pipхочет записать свои скачанные файлы куда-нибудь, чтобы их кешировать. Он реализован для помещения их в подпапку домашнего каталога текущего пользователя. Если вы запускаете его без -Hнего, он будет жаловаться, потому что он обнаруживает, что текущий установленный домашний каталог (обычный пользователь) не соответствует пользователю, с которым он работает (root). Если он записывает свои файлы в ваш домашний каталог, они будут принадлежать пользователю root и больше не будут доступны для вас как обычного пользователя. Поэтому он не кэширует файлы в этом случае. Не страшно опускать, -Hпоскольку pipобнаруживает это и предупреждает вас.
Byte Commander

1
Почему обе команды просто перезаписывают pipкоманду? Когда я обновляю, pip2это не обновляет pip2команду, просто pip.
Yep_It's_Me

@ Yep_It's_Me это связано с тем pip, какую версию Python вы вызываете. и именно поэтому его команды pip2& pip3соответственно вызывают соответствующую версию python для обновления pip. Имеет ли это смысл?
ДжейРиззо

27

я думаю

pip install --upgrade pip

Команда больше не работает должным образом. Правильная команда должна быть:

  • для Python 3:

    python3 -m pip install --upgrade pip
  • для Python 2:

    python2 -m pip install --upgrade pip

Gg @ david-foerster
JayRizzo

В Linux просто используйте pip install -U pip(см. Обновление pip )
Eido95

1
У меня были проблемы при обновлении pip из root (в образе Docker), и это работало как чудо.
Кристиан Рамон-Кортес

Работал как прелесть на Linux Mint
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

версия должна быть изменена на последнюю версию, а ссылка может быть обновлена ​​с помощью ссылки на последнюю версию

это должно работать


это единственное, что сработало для меня, так как все остальное требует подключения к серверу из оболочки, которая снова выходит из строя с той же ошибкой.
Алок Раджасукумаран


1

Я думаю, что стоит упомянуть, что то, что я объясняю ниже, это то, что если вы ожидаете, что pip будет указывать на Python 2, а pip3 будет указывать на Python 3. Причина, по которой я упоминаю это, заключается в том, что когда вы обновляете pip3, он также принимает команду pip как Что ж. Это несколько странное соглашение, потому что по умолчанию python указывает на 2.x, а python3 указывает на 3.x. Что, как говорится...

Если вы хотите, чтобы последние версии Python 2.x pip и Python 3.x pip3 сосуществовали на одном компьютере (используя pip для 2.x и pip3 для 3.x), вам необходимо выполнить следующее:

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 установите pip --upgrade , и в итоге вы получите команду pip для установки пакетов в каталогах python 3.x вместо каталогов python 2.x.

Часть меня думает, что мы должны просто оставить pip be после обновления pip3 (даже если это pip -> pip3), но есть опасность, что люди уже ожидают, что pip функционирует как python - оба указывают на python 2.x. Другими словами, люди, вероятно, обучены использовать pip / python для python 2.x точно так же, как они обучены использовать pip3 / python3 для python 3.x.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.