Как обновить 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версия установлена в противном случае.

Byte Commander
источник
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
Foad
источник
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

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

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

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

pip install -U pip

Самое короткое, что я знаю.

прости
источник
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.

Майк
источник
-1

Я столкнулся с той же ошибкой и решил ее с помощью следующих команд.

sudo su root
apt-get purge -y python-pip
wget https://bootstrap.pypa.io/get-pip.py
python ./get-pip.py
apt-get install python-pip

ImportError: Нет модуля с именем packaging.version

Бхавеш Одедра
источник
apt-get purge -y python-pipработал для меня
Акира Ямамото