Как обновить/обновить пакет с помощью pip?

Как обновить пакет с помощью pip? те не работают:

pip update
pip upgrade

Я знаю, что это простой вопрос, но он необходим, поскольку его не так легко найти (pip документация не появляется, а другие вопросы из-за актуальны, но не совсем об этом)

Ответ 1

Путь

sudo pip install [package_name] --upgrade

или короче

sudo pip install [package_name] -U

sudo попросит вас ввести пароль пользователя root для подтверждения действия.

Если у вас нет пароля пользователя root (если вы не являетесь администратором), вам, вероятно, следует работать с virtualenv, а затем вы должны удалить sudo:

pip install [package_name] --upgrade

Ответ 2

Скрипт tl;dr для обновления всех установленных пакетов

Если вы хотите обновить только один пакет, обратитесь к @borgr answer. Я часто нахожу необходимым или, по крайней мере, приятным, чтобы обновить все мои пакеты сразу. В настоящее время pip изначально не поддерживает это действие, но с помощью сценариев sh это достаточно просто. Вы используете pip list, awk (или cut и tail) и подстановку команд. Мой обычный однострочный текст:

for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done

Это попросит пароль root. Если у вас нет к этому доступа, вам может пригодиться вариант --user pip или virtualenv.

Ответ 3

import subprocess as sbp
import pip
pkgs = eval(str(sbp.run("pip3 list -o --format=json", shell=True,
                         stdout=sbp.PIPE).stdout, encoding='utf-8'))
for pkg in pkgs:
    sbp.run("pip3 install --upgrade " + pkg['name'], shell=True)

Сохранить как xx.py
Затем запустите Python3 xx.py
Окружение: python3. 5+ pip10. 0+

Ответ 4

Для неспецифического пакета и более общего решения вы можете воспользоваться pip-review, инструментом, который проверяет, какие пакеты могут/должны быть обновлены.

$ pip-review --interactive
requests==0.14.0 is available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y