Как собрать проект Python на основе pyproject.toml

Я хотел бы понять текущее состояние систем сборки Python и управления требованиями.

Представьте, что я проверил исходники какого-то проекта, использующего поэзию (или pipenv). И этот проект имеет pyproject.toml файл с указанной системой сборки. Конечно, я могу заглянуть в pyproject, увидеть, что этот использует Poetry, установить Poetry и запустить poetry install, но я бы хотел этого избежать.

Вопрос: Существует ли способ построения проекта Python, не зависящий от системы сборки?

Под «сборкой» я подразумеваю установку всех необходимых требований для запуска проекта на месте.

С requirements.txt я бы добился этого, запустив pip install -r requirements.txt.


person Andrey Tatarinov    schedule 05.11.2019    source источник
comment
pip install .? См. PEP 517 и PEP 518.   -  person L3viathan    schedule 05.11.2019


Ответы (1)


Чтобы установить проект (и его зависимости), последние версии pip на это вполне способны:

path/to/python -m pip install path/to/project

or

path/to/python -m pip install --editable path/to/project

Для создания дистрибутивов проекта в настоящее время pep517 является единственным build-system-agnostic, о котором я знаю (текущие поставщики pip, поэтому я полагаю, что это то, что он использует внутри):

path/to/python -m pep517.build path/to/project
person sinoroc    schedule 26.02.2020
comment
Может быть, это не имеет прямого отношения к вопросу, но как тогда форматировать pyproject.toml? Потому что я пытался заставить его работать, и я не мог найти на нем хороший ресурс. - person Maarten-vd-Sande; 26.02.2020
comment
Да, немного выходит за рамки, учитывая исходный вопрос. Однако написание pyproject.toml зависит от системы сборки, поэтому на что вы ориентируетесь (setuptools, flit, poetry и т. д.)? - person sinoroc; 26.02.2020
comment
@Maarten-vd-Sande Может быть, это поможет: stackoverflow.com/a/60046331/11138259 - person sinoroc; 26.02.2020