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

Микропипенв: один инструмент установки, который охватывает Pipenv, поэзию и инструменты PIP-Tools

В этой статье мы посмотрим на инструмент под названием «Micropipenv». Его главная цель – служить в качестве C … Теги с Python.

В этой статье мы посмотрим на инструмент под названием « Micropipenv ». Его главная цель – служить общим слоем для установки зависимостей Python, как указано пипс , Pip-Tools , Пипнв или Поэзия Отказ

Если вы являетесь разработчиком Python, вы, вероятно, испытали эту зависимость ад, где вы можете легко в конечном итоге с упаковкой Python. Инструмент под названием Пип Был вполне некоторое время, но его реализация не в этом недостаточно, если вы разрабатываете или поддержите любое более крупное приложение на основе Python.

Проект под названием Pip-Tools пытается устранить отсутствие управления зависимостями в Пип. Используется два текстовых файла – Требования. В а также требования .txt Отказ Первый файл, Требования. В Управляется пользователем, состояния прямых зависимости приложения с спецификациями диапазона версий. Последний, требования .txt Управляется Pip-Tools , действует как файл блокировки, указав все пакеты в конкретных версиях, необходимых для запуска приложения (аналогии к NPM-Shrinkwrap.json или Package-lock.json из экосистемы NPM).

Использовать Pip-Tools , вам нужно явно поддерживать виртуальную среду Python (если вам нужно). Начальный Python 3.3. , вы можете выдать следующую команду для создания одного и активировать его:

python3 -m venv venv/
source venv/bin/active

После того, как вы создали виртуальную среду, команды Компиляция PIP и PIP-синхронизация станет твоими друзьями.

Workflow Pip-Tools, как описано в Pip-Tools Package Описание, доступное на Pypi

Для зависимостей, необходимых для выполнения вашего тестового набора, Pip-Tools представил конвенцию, используя Dev-Requirements.in и dev-resenting.txt. . Семантика может быть аналогично выведена.

Примечание для настройки .py и требования. Atxt

Вы, наверное, видели требования .txt файл, используемый с Setup.py. . Обратите внимание на разницу с Pip-Tools Это можно вводить в заблуждение для новичков. Если вы хотите опубликовать библиотеку, вы не хотите ограничивать все версии, закрепленные транзитивными зависимостями к определенным версиям, поскольку вы не знаете, как будет выглядеть решаемый программный стек на стороне приложения. Окончательное решение всегда должно происходить на уровне приложений, а не на уровне библиотеки. Вы, как сопровождающие библиотеки, просто хотите предоставить информацию о совместимости вашей библиотеки с помощью зависимостей, используемых в библиотеке.

Кеннет Рейтц автор одной из самых популярных Python Library – Запросы , представил проект под названием Пипнв в Январь 2017 Отказ Проект приобрел популярность и внимание от общины очень быстро.

Пипнв: Python Dev Workflow для людей

Основной целью проекта было упростить управление зависимостями и сделать его более удобным для пользователя. Это помогло поддерживать виртуальную среду и управлять зависимостями с одной одной командой, используя вновь введенные файлы Pipfile (Томл) и Pipfile.lock.lock.lock (JSON).

Мы, в Red Hat, приняли Pipenv и сделали его одним из вариантов управления зависимостями во время развертывания в Source-to-image openshift Процесс сборки (см. Например Fedora на основе Python контейнерных изображений или Thoth’s Python S2i Контейнерные изображения ). Он приобрел популярность также в наших AICOE и Thoth Team Где де-факто все репозитории с исходным кодом Python используют Pipenv для управления зависимостью.

Другой вариант – использовать Поэзия Отказ Похоже, поэзия привлекла сообщество Python, особенно во время тиховой фазы Пипенва. Поэзия использует Pipenv: Python Dev Workflow для людей Различный тип блокировки формата, чем Pipenv и не совместим с Pipenv или Pip.

Некоторые из требований и идей приводят к внедрению нового инструмента, называемого Микропипенв Отказ Нет, нет намерения ввести другого пипс , Pip-Tools , Поэзия или Пипнв Отказ

https://xkcd.com/1987/

Эта легкая реализация (один файл, около 1200 акций с комментариями) имеет одну дополнительную зависимость и может установить ваши требования к файлам, которые управляются с использованием Pipenv, Pipry, Pip-Tools, или простой требования .txt файл как обычно используется вместе с Setup.py. . Единственное, что вам нужно сделать, это выдать:

micropipenv install

Инструмент автоматически определит, какой тип требований файла или файл блокировки вы используете для управления вашими зависимостями и выполняет желаемую установку.

Кроме того, инструмент предлагает простое функцию преобразования, где любой файл блокировки может быть преобразован в требования .txt и/или Требования. В Отказ

Производить стиль PIP-Tools Требования. В и требования .txt Вы можете просто выполнить следующие команды, при условии, что у вас есть файлы блокировки Pipenv или Poetry, присутствующие в каталоге:

micropipenv requirements --no-dev > requirements.txt
micropipenv requirements --no-dev --only-direct > requirements.in
micropipenv requirements --no-default > dev-requirements.txt
micropipenv requirements --no-default --only-direct > dev-requirements.in

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

curl https://raw.githubusercontent.com/thoth-station/micropipenv/master/micropipenv.py | python3 - install

Посмотреть Документация и источники для получения дополнительной информации.

Одним из продолжающихся усилий в кабинете Красной Шляпы CTO является проект, называемый Thoth. Недавно введенный инструмент в этой статье микропипенв родился в этом проекте. Проверьте одну из наших общедоступных демо, чтобы увидеть Micropipenv в действии (MicroPipenv Micropenv начинается в 9:00 ):

Вы можете следовать нашему YouTube Channel для получения дополнительных обновлений.

Основная причина позади MicroPipenv заключалась в том, чтобы уменьшить стоимость обслуживания пипенва во время своей тиховой фазы. Однако оказалось, что оказалось хорошей идеей, чтобы иметь такой минималистичный инструмент для установки зависимостей, особенно когда речь идет о контейнерных приложениях. Основным преимуществом микропипенва оказалось его размером. При развертывании приложений в контейнерных условиях это действительно хорошая идея для поддержания файла блокировки для приложения. В качестве файла блокировки состояния все стек зависимости уже разрешены, нет причин, по которым не должно быть отправлена поэзия или Pipenv в контейнерном изображении. Инструмент, который просто устанавливает зависимости от любого поставленного файла блокировки, кажется, как минималистичный способ перейти к снижению размера изображения контейнера и программное обеспечение, присутствующее в нем (и, таким образом, отправляется с приложением).

Простое сравнение размера, сделанное в то время как обратно показано приблизительно 30.4MIB разница Когда Пипнв не был установлен в контейнерную среду по сравнению с одним файлом, использующим микропипенв.

Micropipenv может читать в Pipfile.lock.lock.lock , требования .txt или Поэзия. Блок Установка уже разрешенного программного стека и установить его с помощью PIP.

Конструкция CLI сделала MicroPipenv простым инструментом для создания слоя совместимости между всеми популярными инструментами управления зависимостями Python, доступной там в мире с открытым исходным кодом.

Project Thoth – это приложение, которое стремится помочь разработчикам Python. Если вы хотите обновить какие-либо улучшения и любые прогресс, мы делаем в Project Thoth, не стесняйтесь подписаться на наш YouTube Channel Где мы публикуем обновления, а также записи от демонстраций Scrum. У нас также есть Учетная запись Twitter .

Оригинал: “https://dev.to/fridex/micropipenv-the-one-installation-tool-that-covers-pipenv-poetry-and-pip-tools-3ee7”