Автор оригинала: Daniel Pimeh.
Вступление
Обновление пакетов Python может быть хлопотным делом. Их много – трудно уследить за всеми новейшими версиями, и даже когда вы решаете, что обновить, вам все равно приходится обновлять каждую из них вручную.
Для решения этой проблемы был создан pip-review . Он позволяет плавно управлять всеми доступными обновлениями PyPI с помощью простых команд.
Первоначально входя в состав пакета pip-tools
, теперь он живет как автономная удобная оболочка вокруг pipe
. В этом уроке мы рассмотрим как обновить все пакеты с помощью pip-review .
Установить pip-обзор
Вы можете установить pip-review
в виртуальной среде, если хотите ее содержать, или в общесистемной. Естественно, установка pip-review
осуществляется через pip
:
$ pip install pip-review ... Successfully installed pip-review-1.1.0
Страница справки pip-review
Если вы забыли какую-либо из этих команд или вам просто нужен обзор параметров команды:
$ pip-review -h usage: pip-review [-h] [--verbose] [--raw] [--interactive] [--auto] Keeps your Python packages fresh. Looking for a new maintainer! See https://github.com/jgonggrijp/pip-review/issues/76 optional arguments: -h, --help show this help message and exit --verbose, -v Show more output --raw, -r Print raw lines (suitable for passing to pip install) --interactive, -i Ask interactively to install updates --auto, -a Automatically install every update found Unrecognised arguments will be forwarded to pip list --outdated and pip install, so you can pass things such as --user, --pre and --timeout and they will do what you expect. See pip list -h and pip install -h for a full overview of the options.
Проверьте все версии пакетов с помощью pip-review
Иногда вам просто нужно проверить, есть ли какие-либо обновления, прежде чем переходить к потенциально длинному списку обновлений. Чтобы проверить все версии пакетов, вы просто запускаете:
$ pip-review scikit-learn==0.23.2 is available (you have 0.23.1) scipy==1.5.4 is available (you have 1.4.1) seaborn==0.11.0 is available (you have 0.10.1) ...
Это дает вам отчет, в котором перечислены все доступные обновления пакета. По сути, он вызывает pip list – устаревший
. Это имеет то преимущество, что позволяет вам решить, какие пакеты вы хотели бы обновить, если таковые вообще имеются.
Обновите все пакеты с помощью pip-review
После того как вы определили, хотите ли вы обновить свои пакеты , вы можете обновить их все автоматически, используя:
$ pip-review --auto Collecting beautifulsoup4==4.9.3 Downloading beautifulsoup4-4.9.3-py3-none-any.whl (115 kB) ...
Запуск только этой команды – вы готовы к работе. Все так просто.
Обновите все пакеты в интерактивном режиме с помощью pip-review
Если вы, возможно, не хотите обновлять некоторые конкретные пакеты, вам не нужно запускать --auto
updater. Если вы запускаете процесс как --interactive
, вы можете выбрать для каждого отдельного пакета, хотите ли вы обновить его или нет:
$ pip-review --interactive matplotlib==3.3.3 is available (you have 3.1.3) Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit N numpy==1.19.4 is available (you have 1.18.1) Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit Y pandas==1.1.5 is available (you have 1.0.3) Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit N ...
Для каждого пакета у вас есть четыре варианта: “Да”, “Нет”, “Все” и “Выход”.
Выбор “Да” указывает на то, что вы хотите добавить этот конкретный пакет в “список подлежащих обновлению”. В конце каждый пакет в этом списке обновляется.
Если вы в конечном итоге выберете “Нет”, это будет означать, что пакет не будет обновляться. Выбор “Все” означает, что все пакеты, перемещающиеся вперед, будут добавлены в список. Наконец, выбор “Выйти” будет означать, что pip-review
пропустит все оставшиеся пакеты и обновит только те, для которых вы выбрали “Да”.
Запретить pip-review обновлять определенные пакеты
В некоторых ситуациях вы можете запретить автоматическое обновление некоторых пакетов при запуске pip-review --auto
. Это может быть, возможно, чтобы избежать проблем с зависимостями, общей проблемы.
В этих случаях вам нужно будет закрепить конкретные пакеты, которые вы не хотите обновлять. Вы можете сделать это с помощью файла ограничений . Файл ограничений-это файл требований, который управляет только тем, какая версия требования установлена, а не тем, установлена она или нет.
Его синтаксис и содержание идентичны синтаксису файлов требований. Есть одно ключевое отличие:
Включение пакета в файл ограничений не запускает установку пакета.
Давайте сделаем constraints.txt
файл:
$ export PIP_CONSTRAINT="/home/username/constraints.txt
А теперь внутри него мы вставим:
matplotlib==3.1.3 pandas==1.0.3
Вывод
Обновление пакетов с помощью pip
может быть утомительным и трудоемким. И, как и ожидалось в мире компьютерных наук, появился инструмент для автоматизации этого процесса. В этой статье мы рассмотрели утилиту pip-review
– как ее установить, а также как использовать для обновления пакетов в Python.