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

Как победить Pyphon’s Pip: Краткое вступление

Известно, что установщик пакета Python, PIP, имеет проблемы при разрешении программных стеков. В U … Tagged Python, MachineLearning.

Установщик пакета Python, пип известно, что есть проблемы при разрешении программных стеков. В предстоящей серии статей я кратко расскажу о подходе, который помог разрешить версии библиотек для приложений быстрее, чем алгоритм разрешения PIP. Кроме того, разрешенные программные стеки оцениваются на основе различных аспектов, чтобы помочь с доставкой высококачественного программного обеспечения.

Python – один из самых растущих языков программирования. Нет сомнений в том, что он становится выбранным языком программирования для науки о данных, инженеров машинного обучения или разработчиков программного обеспечения. На мой взгляд, код Python-это псевдокод, который просто работает-легко писать, легко поддерживать. Создание сервера API с помощью Колба , создание анализа данных в Jupyter notbooks , или создание нейронной сети с использованием Tensorflow все это можно легко записано в нескольких строках кода. Любые критические детали могут быть оптимизированы благодаря CPYTHON CAPI. Python – очень эффективное оружие в чьем -либо инвентаре.

Управление упаковки Python (PYPA) – это рабочая группа, которая поддерживает основной набор проектов, используемых в упаковке Python. Один из этих компонентов – пип – Рекомендуемый PYPA инструмент для установки пакетов Python. Если вы разработали какое -либо приложение Python, скорее всего, вы использовали его или, по крайней мере, считали его для установки библиотек для вашего проекта. Подобные инструменты – Pipenv (также поддерживается PIPA) или поэзия.

PIP делает свою работу в большинстве случаев довольно хорошо-он может установить ваше желаемое программное обеспечение от PYPI-индекса упаковки Python, который проводит проекты с открытым исходным кодом. В качестве альтернативы, вы можете использовать свои частные индексы Python в качестве источника установленного программного обеспечения. К сожалению, PIP не хватает надлежащей реализации резолей, который в некоторых случаях может привести к болезненным ситуациям. На сегодняшний день PYPA работает над новой реализацией PIP Resolver. В основном, резолюры используют реализацию, но давайте посмотрим на проблему разрешения с другой стороны.

Допустим, мы хотим создать приложение, которое использует две библиотеки под названием Simplib и notherlib Анкет Эти библиотеки могут быть установлены в разных версиях. Эти версии могут оказать другое влияние на полученное программное обеспечение, например, Воздействие на производительность, воздействие на безопасность, или, в худшем случае, приложение вообще не собирается. Теперь давайте создадим функцию, которая включает такие наблюдения и выполняет «оценку» в отношении версий, включенных в установленное программное обеспечение. Такая функция будет иметь дискретные значения, и для нашего искусственного примера она может выглядеть так, как эта визуализация (при условии, что библиотеки не имеют никаких транзитивных зависимостей):

Чтобы сделать его более интуитивно понятным

На горизонтальных осях вы можете увидеть разные версии Simplib и notherlib библиотеки. На вертикальной оси вы можете увидеть разные значения функции оценки. Если бы вы использовали пип , Pipenv , или Поэзия , все эти инструменты будут решать как более поздние версии библиотек, насколько это возможно – на нашем графике это будет самой правой ценностью:

Но что, если мы хотим отправить лучшее программное обеспечение? Что если самые последние релизы разорваны? Это потребует ручной работы, увеличения стоимости обслуживания, и можно легко оказаться в аду зависимости.

Идея, описанная выше, родила проект под названием Тот Анкет Thoth – это механизм рекомендаций для приложений Python, который может разрешить не последнее, а самый большой набор библиотек, которые будут установлены для вашего приложения. Резолювер Тота-это разрешение и зачетное программное обеспечение, основанные на его агрегированных знаниях-следовательно, это разрешение на стороне сервера. Вы можете подать требования, которые у вас есть для вашего приложения, и механизм рекомендаций Thoth может разрешить программный стек, который их удовлетворяет.

В предстоящих статьях я больше погрузимся в внутреннюю часть Тота – как выполняется резолюция, каковы внедренные ключевые концепции и как реализация может разрешить и набрать десятые, сотни или тысячи программного обеспечения на секунду. Одна из используемых концепций существует обучение подкреплению, которое помогает разрешить высококачественные программные стеки, основанные на наблюдениях в базе знаний Тота, так что следите за обновлениями!

Оригинал: “https://dev.to/fridex/how-to-beat-python-s-pip-a-brief-intro-4bec”