У меня есть один проект, который я хотел бы опубликовать как пакеты, ориентированные на две версии Python (3.6 и 3.8).
Что я понимаю:
- Как установить и активировать разные версии Python с помощью
pyenv
. - Как заставить
poetry
создавать виртуальные среды, соответствующие выбранной версии Python. - Как настроить
pyproject.toml
для указания версии Python, управления зависимостями и публикации пакета с использованием этой конфигурации.
Чего я не понимаю: как я могу опубликовать один и тот же пакет для нескольких версий Python? Я не могу быть единственным, у кого есть этот вариант использования, верно?
- Нужны два
pyproject.toml
файла? (по одному для каждой версии Python и набора соответствующих зависимостей ...) - Существуют ли устоявшиеся способы сделать это с помощью Poetry или необходимы другие инструменты / рабочие процессы?
Редактировать
Покопавшись немного, я нашел эту https://python-poetry.org/docs/versions/#multiple-constraints-dependencies, которая, похоже, может быть актуальной.
Вот пример по ссылке выше.
[tool.poetry.dependencies]
foo = [
{version = "<=1.9", python = "^2.7"},
{version = "^2.0", python = "^3.4"}
]
Я также обнаружил, что вы можете указать версию Python, используя poetry add
вот так ...
poetry add cleo --python 3.6.10
Что добавляет зависимости в pyproject.toml
вот так ...
cleo = {version = "^0.8.1", python = "3.6.10"}
Собираюсь поэкспериментировать и посмотреть, работает ли это.
pyproject.toml
? - person sinoroc   schedule 29.01.2021