Pipenv: Python Dev Workflow для людей

27 августа 2018 г.

Pipenv: Python Dev Workflow для людей
Создавайте удобный Python проект сразу с виртуальной средой и контролем версий зависимостей. Удобно, быстро и не засоряя основной пакет лишним мусором.
Долгое время во многих Python проектах стандартном создания виртуальной среды был virtualenv.
Удобно, быстро и не засоряет основной пакет лишним мусором. Для virtualenv есть разные обертки, которые упрощают жизнь, когда на одной машине много проектов.


К счастью, прогресс не стоит на месте и теперь есть инструмент, который делает создание виртуальной среды еще более удобным. 

Встречайте Pipenv — виртуальная среда для людей!


Теперь немного подробностей, что, зачем и как быстро сделать pipenv основным инструментом для создания изолированных сред под ваши проекты.

Pipenv призван привнести в мир Python лучшее из всех упаковочных миров (bundler, composer, npm, cargo, yarn и т.д ). 

Он автоматически создает и управляет virtualenv для ваших проектов, а также добавляет / удаляет из него пакеты Pipfile при установке/удалении пакетов. Pipenv генерирует важные Pipfile.lock, которые используются для создания детерминированных сборок.

Что еще хорошего в pipenv?

— Соединение Pip и virtualenv в одном пакете.
— Управление версиями пакетов в рабочей среде.
— Удобный запуск новых проектов.

Хватит банальностей. Перейдем к практике (вариант для Ubuntu 16.04):

Установка:

$ pip install pipenv



Проверяем актуальные версии установленные из стандартного набора:

$ pip -V

$ virtualenv -V

Открываем папку с вашим новым Python проектом и создаем виртуальное окружение указав версию интерпретатор:

$ cd projectnew

$ pipenv --python 3.6

Активировать виртуальное окружение проекта можно выполнив команду 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


Страница проекта на github - https://github.com/pypa/pipenv

Документация - https://pipenv.readthedocs.io/en/latest/