#python #python-3.x #package
#python #python-3.x #пакет
Вопрос:
Я видел в документах Python, что distutils является «устаревшим» со времен Python 3.4. Каков теперь рекомендуемый (или стандартный) способ распространения пакетов и / или модулей. Спасибо
Ответ №1:
Что ж, в документации к distutils
модулю все сказано:
distutils
Пакет предоставляет поддержку для сборки и установки дополнительных модулей в установку Python. Новые модули могут быть либо на 100% чистым Python, либо модулями расширения, написанными на C, либо могут представлять собой коллекции пакетов Python, которые включают модули, закодированные как на Python, так и на C.Большинство пользователей Python не захотят использовать этот модуль напрямую, но вместо этого используют инструменты для разных версий, поддерживаемые управлением по упаковке Python. Обратитесь к Руководству пользователя по упаковке Python для получения дополнительной информации.
Для авторов инструментов упаковки и пользователей, стремящихся к более глубокому пониманию деталей текущей системы упаковки и распространения, остаются доступными устаревшая документация пользователя на основе distutils и ссылка на API:
В частности, в связанном руководстве пользователя говорится:
- Используйте
setuptools
для определения проектов и создания дистрибутивов с исходным кодом. [5] [6]- Используйте
bdist_wheel
setuptools
расширение, доступное в проекте wheel, для создания wheels. Это особенно полезно, если ваш проект содержит двоичные расширения. [7]- Используйте
twine
для загрузки дистрибутивов в PyPI.
И далее:
distribute
был форкомsetuptools
, который был объединен обратно в setuptools (в версии 0.7), тем самым сделав setuptools основным выбором для упаковки Python.
Другими словами:
distutils
это все еще стандартный способ. Только это более низкий уровень, чем то, что хочет большинство людей. Это базовая версия, поверх которой построены другие инструменты, поэтому она не является «устаревшей». На самом деле в документах нет упоминания об устаревании.setuptools
это предпочтительный способ распространения пакета.
Ответ №2:
В соответствии с Руководством пользователя по упаковке Python рекомендуется использовать setuptools, а затем twine для создания пакетов PyPI.