Как обновить все пакеты Python установленные с pip
Пакет pip — это программа для установки и управления пакетами Python. Сам пакет pip в репозитории вашего дистрибутива существует в двух версиях:
- для Python 3 (называется python3-pip или python-pip в зависимости от того, какая версия Python является версией по умолчанию для вашего дистрибутива)
- для Python 2 (называется python2-pip или python-pip в зависимости от того, какая версия Python является версией по умолчанию для вашего дистрибутива)
С помощью pip можно устанавливать пакеты Python. Это вносит некоторую путаницу, поскольку эти же самые пакеты можно устанавливать из стандартного репозитория вашего дистрибутива. Но в репозитории имеются далеко не все пакеты Python — только те, которые сопроводители дистрибутива упаковали в установочный пакет этого дистрибутива. Следовательно, через pip можно установить намного больше разных пакетов Python (если они вам нужны).
Как обновить пакеты с pip
Но использование pip имеет свои неудобства — программа не отслеживает выход новых версий и не выполняет их автоматическое обновление.
Поэтому пакеты нужно обновлять вручную и по одному следующими командами:
sudo pip install [имя_пакета] --upgrade
Или более короткий вариант:
sudo pip install [имя_пакета] -U
Проблема здесь в том, чтобы узнать вышла ли уже новая версия пакета?
По этой причине лично я стараюсь устанавливать пакеты Python из стандартного репозитория, поскольку в этом случае они обновляются автоматически при обновлении других пакетов системы. И только если их там нет, то я использую для установки pip.
Как с pip показать пакеты, для которых вышли новые версии
С помощью pip можно проверить выход новых версий. К счастью, это для этого не нужно вводить имя каждого пакета по отдельности.
Следующая команда проверяет наличие новых версий для каждого установленного пакета и выведет только те из них, для которых вышли обновления:
Программа проверяет версии для всех пакетов Python. Обычно их довольно много, поэтому программа может работать довольно долго — несколько минут.
Как в pip обновить сразу все пакеты
Можно посмотреть список устаревших пакетов и потом по одному обновлять их командой, которая дана ещё чуть выше. Но это можно сделать проще.
Следующая большая команда найдёт список всех устаревших пакетов Python и обновит их:
for i in $(pip list -o | awk 'NR > 2 '); do sudo pip install -U $i; done
В сердце этой команды лежит предыдущая медленная команда pip list -o, поэтому выполнение займёт определённое время.
Если вы учитесь программировать на Python3, то вашему сердцу может быть ближе следующий вариант. Создайте файл с именем xx.py и скопируйте в него:
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)
Сохраните и закройте этот файл. Когда вы захотите обновить ваши пакеты Python, то запустите этот скрипт следующим образом:
Есть ещё парочка способов выполнить полное обновление системы, пример команды:
sudo pip install -U $(pip freeze | awk '')
Её принцип заключается в том, что она составляет список всех пакетов Python, а затем каждый из них пытается обновить. Если обновления нет — то ничего страшного, просто происходит переход к следующему пакету из списка. Если обновление есть, то оно устанавливается и вновь происходит переход к следующему пакету из списка, пока программа полностью не завершит свою работу.
Конечный результат такой же — будут обновлены все пакеты Python.
У предыдущей команды есть ещё один вариант:
sudo pip install -U $(pip freeze | cut -d '=' -f 1)
Принцип работы абсолютно такой же.
Заключение
pip обновляет пакеты только одной версии Python — то есть для Python3 или для Python2 — это зависит от того, какая версия Python является версией по умолчанию для вашего дистрибутива.
Если вы также хотите обновить пакеты для другой версии, то в предыдущих командах везде заменяйте pip на pip2 или pip3 — в зависимости от вашего дистрибутива.
Или вот вариант ещё проще, следующие команды одинаково сработают абсолютно в любых дистрибутивах, так как в них версии указаны явно (при условии, что pip2 и pip3 установлены в вашей системе).
Для обновления всех пакетов Python3:
for i in $(pip3 list -o | awk 'NR > 2 '); do sudo pip3 install -U $i; done
Для обновления всех пакетов Python2:
for i in $(pip2 list -o | awk 'NR > 3 '); do sudo pip2 install -U $i; done
При обновлении пакетов могут возникать различные ошибки и предупреждения, которые требуют индивидуального подхода. Например, если ошибка в отсутствующей зависимости, то установите необходимую зависимость для обновлённого пакета.
Связанные статьи:
Как обновить PIP в Windows
Зачастую возникает необходимость обновления PIP. В данном руководстве будет дана поэтапная инструкция для обновления PIP в Windows.
Столкнуться с необходимостью обновления PIP можно при установке любого пакета, используя PIP.
Выводится следующее сообщение:
Вы используете версию pip 19.3.1; однако, доступна версия 20.1.1. Вам стоит сделать обновление через команду ‘python -m pip install –upgrade pip’.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Для обновления PIP в Windows нужно открыть Windows Command Prompt, а затем набрать/скопировать туда указанную команду. Обратите внимание, что данный метод сработает только если у вас уже добавлен Python в Windows PATH. Ничего страшного, если вы не знаете, что это такое. Далее мы подробно разберем все шаги обновления PIP.
План обновления PIP в Windows
В поисковике Windows наберите Command Prompt (Командная строка):
Затем откройте Command Prompt (Командную строку). Во избежание проблем с уровнем доступа сделайте это от имени администратора. Для этого кликлинте правой кнопкой мыши и выберите пункт Run as administrator (Запустить от имени администратора):
В командной строке наберите cd \ , чтобы удостовериться, что в начальной точке только название диска:
Нажмите Enter. Вы увидите название диска C:\>
Найдите путь к Python, что является папкой, куда установлен Python.
В нашем случае путь приложения Python следующий:
После получения пути к Python наберите следующую команду в командной строке: cd , за которым следует путь к приложению Python.
В нашем случае это выглядит следующим образом:
Нажмите Enter, вы увидите:
Обновите PIP, использовав данную команду, затем нажмите Enter: