Представляем Pipenv!

Я написал новую утилиту на выходных и назвал её pipenv. Зацените её на GitHub!
Представляем Pipenv!
Pipenv это экспериментальный проект, цель которого привнести лучшее из мира packaging в мир Python. Он объединяет такие утилиты как Pipfile, pip и virtualenv в единый инструмент. И очень круто выглядить в терминале.

Pipenv автоматически создаёт и управляет virtualenv в ваших проектах, а также позволяет устанавливать/удалять пакеты Pipfile. А команда lock создаёт lockfile (Pipfile.lock).

Особенности

  • Автоматически находит корень проекта рекурсивным поиском Pipfile.
  • Автоматически создаёт Pipfile, если его ещё нет.
  • Автоматически создаёт файл Pipfile.lock, если его ещё нет.
  • Автоматически создаёт virtualenv в стандартном расположении (project/.venv).
  • Автоматически добавляет пакеты в Pipfile при их установке.
  • Автоматически удаляет пакеты из Pipfile при их удалении.
  • Автоматически обновляет pip.

Главные команды такие: install, uninstall и lock, которая создаёт Pipfile.lock. Они задуманы как замена для $ pip install, а также автоматического управления virtualenv.

Основные концепты

  • virtualenv создаётся автоматически, если её ещё нет.
  • Если не передавать параметров команде install, будут установлены все требуемые пакеты.
  • Если не передавать параметров команде uninstall, все пакеты будут удалены.
  • Для инициализации виртуальной среды Python 3 выполните сперва $ pipenv —three.
  • Для инициализации виртуальной среды Python 2 выполните сперва $ pipenv —two
  • В других случаях основным окружением будет то, которое доступно по команде $ which python.

Другие команды

  • shell создаст оболочку в виртуальной среде.
  • run запустит переданную команду в virtualenv, со всеми переданными аргументами (например, $ pipenv run python).
  • check проверит соответствие зависимостей текущей среды стандарту PEP 508.

Примеры использования

$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
--where Output project home information.
--bare Minimal output.
--three / --two Use Python 3/2 when creating virtualenv.
--version Show the version and exit.
--help Show this message and exit.

Commands:
check Checks PEP 508 markers provided in Pipfile.
install Installs a provided package and adds it to...
lock Generates Pipfile.lock.
run Spans a command installed into the...
shell Spans a shell within the virtualenv.
uninstall Un-installs a provided package and removes it...
update Updates pip to latest version, uninstalls all...

$ pipenv --where
Pipfile found at /Users/kennethreitz/repos/kr/pip2/test/Pipfile. Considering this to be the project home.

$ pipenv install
Creating a virtualenv for this project...
...
No package provided, installing all dependencies.
Virtualenv location: /Users/kennethreitz/repos/kr/pip2/test/.venv
Installing dependencies from Pipfile.lock...
...

To activate this project's virtualenv, run the following:
$ pipenv shell

$ pipenv install pytest --dev
Installing pytest...
...
Adding pytest to Pipfile's [dev-packages]...

$ pipenv lock
Assuring all dependencies from Pipfile are installed...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Note: your project now has only default [packages] installed.
To install [dev-packages], run: $ pipenv init --dev

$ pipenv install --dev
Pipfile found at /Users/kennethreitz/repos/kr/pip2/test/Pipfile. Considering this to be the project home.
Pipfile.lock out of date, updating...
Assuring all dependencies from Pipfile are installed...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Note: your project now has only default [packages] installed.
To install [dev-packages], run: $ pipenv install --dev
Installing dependencies from Pipfile.lock...
...

$ pipenv uninstall
No package provided, un-installing all dependencies.
Found 25 installed package(s), purging...
...
Environment now purged and fresh!

$ pipenv shell
Spawning virtualenv shell (/bin/zsh).
(test)$

Установка

$ pip install pipenv
Kenneth Reitz

Leave a Comment