Главная » Хабрахабр » Управление окружением Python c Pipenv

Управление окружением 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:

$ pip install pipenv

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

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

$ cd yourproject
$ pipenv --python 3.7

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

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

$ pipenv shell

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

$ exit

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

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

$ pipenv install Flask

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

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

$ pipenv install Flask==1.0.2

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

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

$ pipenv install pytest --dev

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

$ pipenv install --dev

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

$ pipenv uninstall Flask

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

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

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

$ pipenv run python yourapplication.py

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

$ cat .env
DEBUG=1 $ echo $DEBUG
1

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

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

$ pipenv install --system

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

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

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

FROM python:3.7 RUN pip3 install pipenv WORKDIR /usr/src/app COPY Pipfile ./
COPY Pipfile.lock ./ RUN set -ex && pipenv install --deploy --system COPY . .

Пример приложения на Flask с использованием возможностей Pipenv: github.com/fdhadzh/flask-pipenv-example.


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

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

*

x

Ещё Hi-Tech Интересное!

Юнит тестирование скриптов баз данных

Принимая удобство в использовании юнит тестов на моем любимом С++, я попытался перенести свой опыт на TSQL, тем более что новый работодатель любит полезную инициативу на местах и раздает плюшки за оное. Просмотрел несколько известных фреймворкoв я пришел к выводу, ...

Теория счастья. Введение в мерфологию

Продолжаю знакомить читателей Хабра с главами из своей книжки «Теория счастья» с подзаголовком «Математические основы законов подлости». Это ещё не изданная научно-популярная книжка, очень неформально рассказывающая о том, как математика позволяет с новой степенью осознанности взглянуть на мир и жизнь ...