Как установить последнюю версию pip, если я уже установил Ubuntu?

18

В Ubuntu 16.04, когда вы делаете:

pip install --upgrade pip

Вы получаете:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Справедливо. Сейчас попробуй

pip install --upgrade pip

и вы получите:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Итак, как на самом деле получить пипс 8.1.2?

user2413
источник
Работает ли sudo -H pip install --upgrade pip?
edwinksl
@edwinksl: он дает те же результаты, что и другие команды.
user2413
Это кажется странным, так как это сработало для меня. Вероятно, необходимо подать отчет об ошибке.
edwinksl
@edwinksl: спасибо. Я подожду еще пару дней и сделаю это>
user2413
1
@edwinksl Просто открыл проблему на случай, если кто-то захочет ее отследить.
Sethmlarson

Ответы:

13

Не стоит обновлять системный питон, если вы не работаете над кодом Ubuntu и у вас нет особых причин для этого. Существует множество системных зависимостей, которые вы можете нарушить, обновив с помощью pip вместо использования библиотек python в репозитории APT.

Если вы разрабатываете приложения на Python и вам необходимо изменить версии библиотек, вам следует использовать либо параметры --user для pip, либо создать virtualenv для хранения пользовательских версий библиотек.

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

pip с --user

Это так же просто, как простое добавление --user в конец всех ваших команд pip, это поместит ваши библиотеки Python в ~ / .local / lib / pythonX.X (где XX - номер вашей версии Python), они будут просмотрены для начала, просто будьте осторожны при выполнении этого для root, если вам нужно запустить через sudo, так как это может повлиять на системный питон.

virtualenv

Это работает аналогично описанному выше, но менее привязано к конкретному пользователю, поэтому не имеет ограничений sudo, вы также можете клонировать virtualenv и обновить его, чтобы протестировать изменения, что позволит вам вернуться, если он отстой. http://docs.python-guide.org/en/latest/dev/virtualenvs/

Амиас
источник
1
Вы действительно хотите сделать альтернативную установку python, если вы хотите 2.7, так что вы не будете мешать операционной системе Python. Оттуда вам нужно обновить pip в alt install перед venv. Вы также хотите --no-cache-dir, чтобы предотвратить установку кэшированной версии.
Wyrmwood
Обновление pip не оказывает негативного влияния (во всяком случае) на python 2.7, который поставляется по умолчанию.
Скорбящий
10

Похоже, что это может быть проблема с установкой .whl файла для pip8.1.2. pipОбходной путь для установки 8.1.2 - загрузить исходный код непосредственно из PyPi и установить его через setup.py.

У меня сработало следующее:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

Это, конечно, не решение для установки pip 8.1.2 через pip install --upgrade, но должно подавить предупреждение, пока эта проблема не будет решена .

sethmlarson
источник
В этой ветке есть комментарий, в котором говорится, что это частично связано с тем, что ubuntu исправляет их упакованную версию pip, чтобы остановить обновление установленных пакетов.
Амиас
5

sudo -H python -m pip install --upgrade pipрешит вашу проблему. Как уже упоминалось выше, хотя для конкретной системы требуется Python 2.7 для определенных вещей ... При этом вы можете обновить pip, не оказывая негативного влияния на это, но вы также можете установить 3.5 вместе с ней, если хотите.

-Hэто флаг для того, sudoчто просьбы о том , что политика безопасности установите переменную HOME среды в домашней директории , указанной в записи базы данных пароль целевого пользователя. В зависимости от политики это может быть поведение по умолчанию.

Скорбящих
источник
Если кто-то хочет опровергнуть такой продуманный пост, вы должны действительно сказать, почему это плохая форма.
Джавадба
Потому что они злы и им нужно на кого-то излить гнев. Злой на то, что вы спрашиваете, жизнь в целом. стек переполнения превратились в ничто , но место , чтобы прийти и гонения.
скорбящий
2

Удалите pip с помощью apt-get и установите его с помощью easy_install. Это сработало для меня.

sudo apt-get remove python-pip
sudo easy_install pip
toliveira
источник
easy_install не работает. Я получаю bash: /usr/bin/pip: No such file or directory. И я тоже не могу чистить пипс. Я надеюсь, что это не полностью сломал пункт на моей машине.
Дин Шульце