Требование.txt по-прежнему необходимо при использовании pyproject.toml?

С середины 2022 года теперь можно избавиться от setup.py, setup.cfg в пользу pyproject.toml. Редактируемые установки работают с последними версиями setuptools и pip, и даже официальное руководство по упаковке переключилось с setup.py на pyproject.toml.

Однако документация по requirements.txt, похоже, тоже была удалена, и интересно, куда теперь поместить закрепленные требования?

В качестве напоминания: раньше было обычной практикой помещать зависимости (без закрепления версии) в setup.py, чтобы избежать проблем, когда этот пакет устанавливается с другими пакетами, которым требуются те же зависимости, но с конфликтующими требованиями к версии. Для упаковки библиотек обычно достаточно setup.py.

Для развертываний (т.е. не библиотек) вы обычно также предоставляли requirements.txt с привязанными к версии зависимостями. Таким образом, вы не получаете случайно самые последние и самые лучшие, а точные версии зависимостей, с которыми был протестирован этот пакет.

Так вот у меня вопрос, изменилось ли что-нибудь? Вы по-прежнему ставите закрепленные требования в requirements.txt при использовании вместе с pyproject.toml? Или есть лишний раздел за это в pyproject.toml? Есть ли где-нибудь документация по этому поводу?

Насколько я понимаю, информация, которая раньше входила в setup.py, теперь разделена между pyproject.toml и setup.cfg.

chepner 20.11.2022 15:37

Я не думаю, что setup.cfg больше нужен. Возможно, какие-то сторонние пакеты по-прежнему настаивают на размещении своей конфигурации там, но что касается упаковки, все вещи из setup.cfg можно переместить в pyproject.toml.

Bastian Venthur 20.11.2022 15:44

Я смутно помню, как в начале этого года пытался что-то переместить из setup.cfg в pyproejct.toml, но setuptools не узнал и не нашел. Я согласен с тем, что целью является перемещение вещей, но я думал, что это все еще незавершенная работа.

chepner 20.11.2022 15:50
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
Python PyPDF2 - запись метаданных PDF
Python PyPDF2 - запись метаданных PDF
Python скрипт, который будет записывать метаданные в PDF файл, для этого мы будем использовать PDF ридер из библиотеки PyPDF2 . PyPDF2 - это...
Переменные, типы данных и операторы в Python
Переменные, типы данных и операторы в Python
В Python переменные используются как место для хранения значений. Пример переменной формы:
Почему Python - идеальный выбор для проекта AI и ML
Почему Python - идеальный выбор для проекта AI и ML
Блог, которым поделился Harikrishna Kundariya в нашем сообществе Developer Nation Community.
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Анализ продукта магазина на Tokopedia
Анализ продукта магазина на Tokopedia
Tokopedia - это место, где продавцы могут продавать свои товары. Товар должен быть размещен на витрине, чтобы покупателям было легче найти товар...
4
3
358
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это документация pip для pyproject.toml

... Этот файл содержит системные требования и информацию для сборки, которые используются pip для сборки пакета.

Так что это не то место. Глядя на боковую панель, мы видим запись Формат файла требований, которая является «старым» requirements.txt файлом.

Предлагаю перейти на поэзию, это намного лучше стандартного pip для управления зависимостями. А поскольку он использует pyproject.toml, ваши зависимости и конфиги находятся в одном месте, так что всем проще управлять 🙂

Ответ принят как подходящий

Цитирую себя из здесь

Мое текущее предположение таково: [...] вы помещаете свои (в основном незакрепленные) зависимости в pyproject.toml вместо setup.py, поэтому вашу библиотеку можно установить как зависимость от чего-то еще, не вызывая особых проблем из-за проблем, разрешающих ограничения версии .

Вдобавок ко всему, для «развертываемых приложений» (из-за отсутствия лучшего термина) вы все равно хотите поддерживать отдельный файл requirements.txt с точной привязкой версии.

Это было подтверждено членом Управления по упаковке Python (PyPA), и пояснения к рекомендациям PyPA должны быть соответствующим образом обновлены в какой-то момент.

Другие вопросы по теме