Я подумываю о том, чтобы познакомить свою организацию с Poetry for Python, и наткнулся на следующее утверждение:
Избегайте использования инструмента «Поэзия» для новых проектов. Poetry использует нестандартные реализации ключевых функций. Например, он не использует стандартный формат в файлах pyproject.toml, что может вызвать проблемы совместимости с другими инструментами.
--Современные передовые практики разработки на Python
Это правда? Я не сразу нашел что-либо в поисках. Что делает Poetry нестандартного, в pyproject.toml или где-то еще?
Кажется, вы уже закрыли пару вопросов ;)
из любопытства, какой менеджер пакетов вы сейчас используете в своей фирме?
Здесь не хватает контекста: решения поэзии предшествовали стандартам PEP 621, и полезность самой поэзии, вероятно, повлияла на создание и развитие этих стандартов.
@DerekRoberts лол В настоящее время мы используем pip + require.txt + venv, который я бы не назвал менеджером пакетов даже в сочетании.
Да, Poetry на момент написания статьи по-прежнему использует собственную таблицу [tool.poetry.dependencies]
в pyproject.toml
.
Это противоречит PEP621, который, среди прочего, указывает, что вместо этого зависимости проекта должны быть перечислены в [project.dependencies]
.
Здесь есть проблема с отслеживанием этого https://github.com/python-poetry/poetry/issues/3332 и кажется, что на момент написания статьи поддержка PEP621 уже в пути, а черновой вариант запроса на включение проходит проверки здесь. : https://github.com/python-poetry/poetry/pull/9135.
Основным недостатком этого является то, что другие инструменты не понимают, от каких пакетов зависит ваш поэтический проект. Я считаю, что собранные пакеты, которые вы загружаете в PyPI и т. д., не страдают от этой проблемы, потому что поэтика в процессе сборки создает правильные метаданные пакета с фиксированным набором зависимостей, привязанных к версии, поэтому pip install your-poetry-package
вполне подойдет для установки зависимостей.
В заключение, в поэзии версии 2.0 через некоторое время поэзия может быть совместима со стандартами pyproject.toml
.
Вы также можете использовать poetry export
для экспорта вашего pyproject.toml в файл require.txt, понятный pip.
(inb4: я знаю, что некоторые пользователи stackoverflow любят играть быстро и свободно с тем, что они считают «в первую очередь основанным на мнениях», поэтому я собираюсь забежать вперед и сказать нет, этот вопрос в первую очередь не основан на мнениях; Подобные стандарты разработаны, чтобы быть вполне объективными, и если вы решите закрыть этот вопрос как «в первую очередь основанный на мнениях», это будет только показывать, что вы принципиально не понимаете это правило StackOverflow или почему оно существует.)