Поиск по сайту:

Как управлять пакетами Python с помощью Pipenv

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

Почему Пипенв?

Pipenv решает следующие проблемы в реальном времени:

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

Что ж, давайте начнем.

Установите Pipenv в Linux

Существует много способов установки 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

Когда вы ls войдете в каталог своего проекта (т.е. в данном случае 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.

Рекомендуем прочитать:

  • Pipx – установка и запуск приложений Python в изолированных средах

Ресурсы:

  • Страница Pipenv на GitHub
  • Сайт Pipenv

Статьи по данной тематике