Рубрики
Без рубрики

Python: Обновите Все Пакеты С Помощью pip-review

В этом уроке мы рассмотрим отличный простой инструмент – pip-review, который автоматически обновляет все пакеты Python.

Автор оригинала: 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.