рекомендации

среда, 24 марта 2021 г.

Pipenv - официально рекомендованная утилита для установки пакетов Python

На днях мы опубликовали руководство для начинающих по управлению пакетами Python с помощью PIP. В этом руководстве мы обсудили, как установить pip, а также как устанавливать, обновлять и удалять пакеты Python с помощью pip. Мы также обсудили важность виртуальных сред и способы создания виртуальной среды с помощью инструментов venv и virtualvnv. Сегодня мы узнаем о другом диспетчере пакетов Python под названием pipenv. Это новый инструмент упаковки Python, рекомендованный Python.org. Его можно использовать для простой установки и управления зависимостями python без необходимости создания виртуальных сред. Pipenv автоматически создает виртуальную среду для ваших проектов и управляет ею. Он также добавляет/удаляет пакеты из вашего Pipfile при установке/удалении пакетов.

Почему Pipenv?

Pipenv решает следующие проблемы в реальном времени:
  • Вам больше не нужно создавать виртуальную среду. Pipenv автоматически создаст virtualenv для ваших проектов. Проще говоря, pip и virtualenv работают вместе.
  • Управление файлом requirements.txt может быть проблематичным, поэтому Pipenv вместо этого использует готовящиеся к релизу Pipfile и Pipfile.lock, что лучше для базовых сценариев использования.
  • Он безопасен. Хэши используются везде и всегда. Автоматически обнаруживаются уязвимости безопасности.
  • Просматривайте график зависимостей в любое время.
  • Оптимизируйте рабочий процесс разработки, загрузив файлы .env.
Установка Pipenv, официально рекомендованного инструмента для работы с пакетами Python

Есть много способов установить Pipenv. Мы рассмотрим два официально рекомендованных метода.

1. Установка pipenv с помощью pip

Официально рекомендуемый способ - использовать pip. Убедитесь, что у вас установлены python и pip. Если нет, обратитесь к нашему предыдущему руководству по ссылке в первом абзаце этой статьи.

После установки pip выполните следующую команду, чтобы установить pipenv.
$ pip install --user pipenv
Эта команда установит pipenv на уровне пользователя (т. е. не в масштабе всей системы). Если pipenv недоступен в вашей оболочке после его установки, вам может потребоваться добавить каталог двоичных файлов вашей пользовательской базы в ваш PATH. Если вы не знаете, какая у вас база, выполните следующую команду, чтобы узнать это:
$ python -m site --user-base
Вы увидите результат, подобный приведенному ниже.
/home/sk/.local
Как видно из вышеприведенного вывода, мой базовый каталог пользователя - /home/sk/.local, а мой базовый каталог двоичных файлов - /home/sk/.local/bin. Хорошо. Теперь добавьте это в свой PATH. Для этого отредактируйте файл ~/.profile:
$ vi ~/.profile
Добавьте эту строку в конце:
export PATH="$HOME/.local/bin:$PATH"
Нажмите клавишу ESC и введите :wq, чтобы сохранить и закрыть файл. Затем выполните следующую команду, чтобы изменения вступили в силу.
$ source ~/.profile
Наконец, выполните следующую команду:
$ pipenv --update
Чтобы обновить pipenv в любое время, выполните следующую команду:
$ pip install --user --upgrade pipenv
2. Установка pipenv с помощью pipsi

Pipsi - это мощный инструмент, позволяющий устанавливать скрипты Python в изолированные виртуальные среды.

Чтобы установить pipsi, выполните:
$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python
Следуйте инструкциям на экране, вам нужно будет обновить PATH.

После установки pipsi выполните следующие команды для установки pipenv:
$ pipsi install pew
$ pipsi install pipenv
Наконец, выполните следующую команду:
$ pipenv --update
Чтобы обновить pipenv в любое время, просто выполните:
$ pipsi upgrade pipenv
Управление пакетами Python с помощью Pipenv

Запустите «pipenv» в своей оболочке, чтобы отобразить список доступных команд и главных опций.
$ pipenv
Пример вывода:


Установка пакетов

Создайте новый проект или перейдите в каталог существующего проекта.
$ mkdir myproject
$ cd myproject
Установите пакеты для вашего проекта:
$ pipenv install requests
Когда вы зайдете в каталог своего проекта (в данном случае myproject), вы увидите два файла, а именно Pipfile и Pipfile.lock. Pipfile содержит информацию о недавно установленном пакете, такую как имя, версия и т. д. Вы можете использовать Pipfile, чтобы отслеживать, какие зависимости нужны вашему проекту, когда вы хотите переустановить проект или поделиться им с другими.
$ cat Pipfile

А Pipfile.lock содержит вашу системную информацию, все зависимости установленного пакета, включая их версию, и все хэши для всех установленных пакетов и их зависимостей.
$ cat Pipfile.lock

Теперь установите другой пакет и снова проверьте содержимое двух файлов. Вы заметите, что Pidfile теперь содержит два пакета. Кроме того, Pidfile.lock содержит все зависимости установленных пакетов, включая их версию, и все хэши для всех установленных пакетов и их зависимостей. Проще говоря, эти два файла будут обновляться автоматически каждый раз, когда вы устанавливаете новый пакет.

Вы заметили? Я не создавал никаких виртуальных сред. Pipenv автоматически создал виртуальную среду для моего проекта. Хотите знать, где хранятся ваши проекты? Просто запустите эту команду, чтобы узнать местоположение вашей виртуальной среды.
$ pipenv --venv
/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN
Чтобы просмотреть информацию о домашней директории вашего проекта, выполните:
$ pipenv --where
/home/sk/myproject
Как видно из вывода, «/home/sk/myproject» - это домашний каталог моего проекта, а «/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN» - моя виртуальная среда.

Вы можете выполнить команду «ls» в своем виртуальном окружении, чтобы проверить, что там находится.
$ ls /home/sk/.local/share/virtualenvs/myproject-x7-2XYPN
Обновление пакетов

Чтобы обновить все пакеты, выполните:
$ pipenv update
Эта команда удалит все пакеты и переустановит пакеты последних совместимых версий.


Проверка целостности пакета

Вы беспокоитесь о том, есть ли в установленных пакетах уязвимости безопасности? Нет проблем! Pipenv вас поддержит. Чтобы проверить целостность пакетов, просто выполните следующую команду:
$ pipenv check
Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!
Приведенная выше команда проверяет уязвимости системы безопасности по маркерам PEP 508, указанным в файле Pipfile.

Просмотр графа зависимостей

Давайте запустим «pipenv graph» и посмотрим, что произойдет.
$ pipenv graph

Как видите, эта команда отображает граф зависимостей.

Удаление пакета

Чтобы удалить пакет, выполните:
$ pipenv uninstall requests
Un-installing speedtest-cli…
Uninstalling speedtest-cli-1.0.7:
 Successfully uninstalled speedtest-cli-1.0.7

Removing speedtest-cli from Pipfile…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c23e27)!
Чтобы удалить все, выполните:
$ pipenv uninstall --all
Un-installing all packages from virtualenv…
Found 1 installed package(s), purging…

Environment now purged and fresh!
Среда теперь чистая и свежая!

Для получения дополнительных сведений выполните:
$ pipenv -h
или,
$ pipenv --man
Насколько я знаю, Pipenv намного проще в использовании, чем pip. Поскольку он официально рекомендован Python.org, теперь вы можете полностью избавиться от venv и virtualenv при установке пакетов Python.

Комментариев нет:

Отправить комментарий