Перейти к содержимому

Управление окружением Python c Pipenv

Привет, мой друг!

Предположу, что для управления Python окружением в вашем проекте до сих пор используется pip и virtualenv.

Если это так, то позвольте рассказать о таком инструменте, как Pipenv.

Pipenv — это современный инструмент для управления рабочим окружением в Python.

Основные возможности pipenv:

  • Создание и управление виртуальным окружением
  • Синхронизация пакетов в Pipfile при установке и удалении пакетов
  • Автоматическая подгрузка переменных окружения из .env файла

В качестве показательного примера сравним использование pip и virtualenv с pipenv для создания виртуального окружения:

  1. pip и virtualenv
    «$ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt»
  2. pipenv
    «$ pipenv install Flask gunicorn»

Начало работы

Установим последнюю версию pipenv:

Управление рабочим окружением

Перейдем в каталог с Python проектом и создадим виртуальное окружение указав версию интерпретатор:

Команда автоматически создаст новое виртуальное окружение для вашего проекта, если он еще не существует.

Активировать виртуальное окружение проекта можно выполнив команду shell:

Выход из оболочки виртуального окружения осуществляется с помощью команды exit:

Управление зависимостями приложения

Для установки пакетов воспользуемся командой  «install»:

Pipenv установит последнюю версию пакета  «Flask» и автоматически добавит его в Pipfile.

При установке можем задать конкретную версию пакета:

Разработчики данного инструмента позаботились и о работе со средой разработки — пакетами, которые необходимы на этапе сборки или тестирования приложений.

При указании флага —dev, пакет будет установлен как часть среды разработки:

Чтобы установить все пакеты, включая пакеты среды разработки необходимо выполнить:

Для удаление пакетов существует команда  «uninstall»:

Сведения об установленных пакетах и их зависимостях хранятся в файле Pipfile.lock, который генерируется автоматически и не должен быть изменен пользователем.

Запуск исходного кода

Существует возможность запуска исходного кода внутри оболочки virtualenv:

При наличии файла .env команды $ pipenv shell и $ pipenv run, автоматически подгрузят из него переменные окружения:

Развертывание приложения

Pipenv позволяет устанавливать зависимости в родительскую систему при указании флага —system:

Это полезно при развертывания приложений в Docker.

При указании флага —deploy — pipenv выдаст ошибку, если Pipfile.lock устарел или версия Python не соответсвует указанной.

Пример Dockerfile для работы с pipenv:

Опубликовано вPython

Ваш комментарий будет первым

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *