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

Разработка /
Я написал новую утилиту на выходных и назвал её pipenv. Зацените её на GitHub!
Разработка: Представляем Pipenv!
Pipenv это экспериментальный проект, цель которого привнести лучшее из мира packaging в мир . Он объединяет такие утилиты как Pipfile, и 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
0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.