Рубрики
Без рубрики

Pipfile и Pipenv: будущее управления зависимостями Python

Формат Pipfile заставит вас снова полюбить управление зависимостями Python прямо сейчас с Pipenv Кеннета Рейца. Tagged с помощью Python, Pipfile, Pipenv, зависимостей.

Да, я тебя слышал. PIP – отличный инструмент и существует довольно долгое время. Но в течение 3 лет люди (участники) искали способ улучшить наш опыт управления пакетами. Подумайте о суперспособности композитора, NPM (или лучше, пряжи) в вашем любимом инструменте.

То, что они предлагают, (более или менее) замена для вековых Требования.txt Файл: Pipfile Анкет

Как я научился перестать беспокоиться и любить Пип (снова)

Новый Pipfile отличается от файла требований старого стиля несколькими способами:

  • Он использует Toml синтаксис, чтобы обеспечить большую конфигурацию;
  • Он объявляет группы зависимостей (то есть A по умолчанию один плюс разработка один для ... пакеты разработки), поэтому вам не нужно разделять свои требования на несколько файлов. Это идет с
  • PIPFILE.LOCK Файл, который прикрепляет версии ваших пакетов, в дополнение к некоторому бонусу безопасности.

Давайте посмотрим на минимальный, простой Pipfile:

[[source]]
url = 'https://pypi.python.org/simple'
verify_ssl = true
name = 'pypi'

[requires]
python_version = '3.6'

[packages]
flask = '*'

[dev-packages]
pytest = '*'

Что мы имеем здесь:

  • Сначала мы объявляем источник, который будет использовать PIP. Как правило, это будет pypi Анкет
  • Затем мы объявляем наше требование к версии Python.
  • Наконец, мы объявляем наши пакеты и пакеты разработки.

Ты понял ? Теперь вот пример PIPFILE из официального репозитория на GitHub:

[[source]]
url = 'https://pypi.python.org/simple'
verify_ssl = true
name = 'pypi'

[requires]
python_version = '2.7'

[packages]
requests = { extras = ['socks'] }
records = '>0.5.0'
django = { git = 'https://github.com/django/django.git', ref = '1.11.4', editable = true }
"e682b37" = {file = "https://github.com/divio/django-cms/archive/release/3.4.x.zip"}
"e1839a8" = {path = ".", editable = true}
pywinusb = { version = "*", os_name = "=='nt'", index="pypi"}

[dev-packages]
nose = '*'
unittest2 = {version = ">=1.0,<3.0", markers="python_version < '2.7.9' or (python_version >= '3.0' and python_version < '3.4')"}

Видеть ? С помощью синтаксиса TOML вы можете быть очень специфическими в отношении версии, источника или OS-варианта, которую вы хотите использовать. Обратите внимание, что все версии пакетов не закреплены, даже если это был Предпочтительный способ объявления зависимостей Анкет

PIP собирается поддерживать эту спецификацию в Furure с помощью синтаксиса, такого как PIP установка -p PIPFILE Анкет Давайте посмотрим, как мы можем использовать все эти волшебные вещи сегодня.

Назад в будущее

Встретиться Pipenv (Да, это еще один проект от Кеннета Рейца, парня, стоящего за httpbin , pep8.org и, да, Запрос )

Pipenv – это текущая предпочтительная реализация Pipfile и позволяет вам управлять виртуальными вариантами, как босс. Он направлен на облегчение и улучшение того, как мы управляем нашими средами Python (A la virtualenvwrapper , но с pip навыки).

Вот простой рабочий процесс:

1- В вашем каталоге проекта создайте свой Virtualenv Анкет Pipenv будет хранить его в централизованном месте вместо вашего проекта Root Directory:

pipenv --three # Yeah, 3 is the way to go

2- Установите некоторые зависимости:

pipenv install flask
pipenv install --dev pytest # Notice the --dev flag

3- Используйте свой Virtualenv Анкет Он откроет новую оболочку:

pipenv shell

Обратите внимание, что мы не были в Наша виртуальная команда перед этой командой. Все обрабатывается для нас Pipenv Анкет

С этого момента вы готовы идти. Pipenv поможет вам управлять вашей средой на протяжении всего процесса разработки.

Наконец, вы не должны беспокоиться о проблемах совместимости с вашим сервером развертывания (что, безусловно, все еще использует Как вы читаете это): вы можете генерировать старый старый Требования.txt Бег:

pipenv lock -r > requirements.txt

Pipenv обрабатывает ваши зависимости, и он даже добавляет некоторые подкрепления безопасности, указав хэш каждого пакета.

Вот и все. Перейти тестируйте Pipenv и скажите мне, что вы думаете!

Ваше здоровье

ПРИМЕЧАНИЕ: Этот пост был первоначально опубликован Середина .

Оригинал: “https://dev.to/djiit/pipfile-and-pipenv–the-future-of-python-dependencies-management-cl6”