Пакетирование и `pyproject.toml`
Python
Senior
Яндекс
Как сегодня рекомендуется упаковывать библиотеку на Python? Какую роль играет `pyproject.toml` и чем он лучше старого подхода с `setup.py`?
Ответы
pyproject.toml
Современная рекомендация — использовать `pyproject.toml` как единый конфигурационный файл (PEP 517/518). В нём указывают:
- build-систему (`setuptools`, `hatchling`, `poetry` и т.д.);
- метаданные проекта (название, версия, зависимости).
Преимущества над `setup.py`:
- декларативная конфигурация (меньше произвольного кода);
- независимость от конкретной build-системы;
- лучшая интеграция с инструментами (build, installer, линтеры).
`setup.py` остаётся для legacy-проектов, но новые библиотеки лучше начинать с `pyproject.toml`.