Как обновить все пакеты 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 можно проверить выход новых версий. К счастью, это для этого не нужно вводить имя каждого пакета по отдельности.
Следующая команда проверяет наличие новых версий для каждого установленного пакета и выведет только те из них, для которых вышли обновления:
pip list -o
Вариант для Python3:
pip3 list -o
Вариант для Python2:
pip2 list -o
Программа проверяет версии для всех пакетов 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 python3 xx.py
Есть ещё парочка способов выполнить полное обновление системы, пример команды:
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
При обновлении пакетов могут возникать различные ошибки и предупреждения, которые требуют индивидуального подхода. Например, если ошибка в отсутствующей зависимости, то установите необходимую зависимость для обновлённого пакета.
Связанные статьи:
- Ошибка «Cannot uninstall . It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.» (РЕШЕНО) (100%)
- Ошибка «Error: pg_config executable not found.» (РЕШЕНО) (100%)
- Решение проблемы со сломавшимся после обновления пакетов Pip (80.6%)
- Как установить pip в Kali Linux (80.6%)
- Ошибка «ModuleNotFoundError: No module named ‘manimpango’» (РЕШЕНО) (80.6%)
- Переход на Python 3 в Debian и Kali Linux (RANDOM — 50%)
Как обновить библиотеку в Python
В Python, вы можете обновить библиотеку, используя pip — менеджер пакетов Python.
Обновление одной библиотеки
Для обновления одной конкретной библиотеки, вы можете использовать команду:
pip install library_name --upgrade
где library_name — имя библиотеки, которую вы хотите обновить.
Обновление всех библиотек
Для обновления всех установленных библиотек, вы можете использовать команду:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
Это обновит все библиотеки, которые были установлены локально в текущем окружении.
Заключение
Обновление библиотек в Python является простым и легким процессом с помощью pip.
Это позволяет вам всегда иметь доступ к последним версиям библиотек и улучшать функциональность вашего кода. Не забудьте периодически обновлять ваши библиотеки, чтобы избежать проблем совместимости и безопасности.
How do I update a Python package?
I’m running Ubuntu 9:10 and a package called M2Crypto is installed (version is 0.19.1). I need to download, build and install the latest version of the M2Crypto package (0.20.2). The 0.19.1 package has files in a number of locations including (/usr/share/pyshared and /usr/lib/pymodules.python2.6). How can I completely uninstall version 0.19.1 from my system before installing 0.20.2?
12.3k 4 4 gold badges 57 57 silver badges 89 89 bronze badges
asked Mar 3, 2011 at 16:40
3,449 2 2 gold badges 15 15 silver badges 5 5 bronze badges
13 Answers 13
The best way I’ve found is to run this command from terminal
sudo pip install [package_name] --upgrade
sudo will ask to enter your root password to confirm the action.
Note: Some users may have pip3 installed instead. In that case, use
sudo pip3 install [package_name] --upgrade
834 1 1 gold badge 9 9 silver badges 19 19 bronze badges
answered Nov 28, 2014 at 7:34
princelySid princelySid
6,777 2 2 gold badges 16 16 silver badges 17 17 bronze badges
And if you are using a proxy without authentication: sudo pip install [package] —upgrade —proxy=address:port
Jan 18, 2017 at 12:20
I came here for this answer. I tried pip update and pip upgrade and was desperate until I saw —upgrade here. Why don’t they add a pip upgrade command?
May 23, 2017 at 13:18
This is indeed a well-hidden feature.
Jul 13, 2017 at 10:40
For Windows users: sudo is not required.
Apr 20, 2018 at 20:37
This should be answer #1
Jul 16, 2018 at 14:19
You might want to look into a Python package manager like pip. If you don’t want to use a Python package manager, you should be able to download M2Crypto and build/compile/install over the old installation.
4,313 7 7 gold badges 17 17 silver badges 56 56 bronze badges
answered Mar 3, 2011 at 16:43
Jeremy Whitlock Jeremy Whitlock
3,818 26 26 silver badges 16 16 bronze badges
Thanks. What you said worked. I built and installed 0.20.2 without needing to uninstall 0.19.1.
Mar 3, 2011 at 16:50
To automatically upgrade all the outdated packages (that were installed using pip), just run the script bellow,
pip install $(pip list --outdated | awk '< print $1 >') --upgrade
Here, pip list —outdated will list all the out dated packages and then we pipe it to awk, so it will print only the names. Then, the $(. ) will make it a variable and then, everything is done auto matically. Make sure you have the permissions. (Just put sudo before pip if you’re confused) I would write a script named, pip-upgrade The code is bellow,
#!/bin/bash sudo pip install $(pip list --outdated | awk '< print $1 >') --upgrade
Then use the following lines of script to prepare it:
sudo chmod +x pip-upgrade sudo cp pip-upgrade /usr/bin/
Then, just hit pip-upgrade and voila!
Как обновить пакет с использованием pip?

Ситуация, когда необходимо обновить версию установленного пакета в Python, встречается довольно часто. Например, разработчик выпустил новую версию пакета с исправлением ошибок или с добавлением новых функций, и для работы требуется именно обновленная версия.
Однако, при попытке использовать команды pip update или pip upgrade , возникает ошибка, так как таких команд не существует. Но не стоит пугаться, решение проблемы есть и оно довольно простое.
Для обновления пакета используется менеджер пакетов pip, который является стандартным для Python.
Для обновления пакета в Python, можно использовать следующую команду:
pip install --upgrade имя_пакета
Вместо имя_пакета необходимо подставить название пакета, который требуется обновить. Например, чтобы обновить пакет numpy, нужно ввести следующую команду:
pip install --upgrade numpy
Если требуется обновить все установленные пакеты, можно использовать pip-review, утилиту для обновления пакетов. Сначала ее нужно установить:
pip install pip-review
Затем можно обновить все пакеты одной командой:
pip-review --auto
Таким образом, обновление пакетов в Python — задача, которую можно решить несколькими простыми командами.