Документация Python неофициальный перевод
Содержание страницы

Распространение модулей PythonDistributing Python Modules

Эл. почта:distutils-sig@python.org

Будучи популярным проектом с открытым исходным кодом, Python имеет активное сообщество разработчиков и пользователей, которые также предоставляют своё программное обеспечение другим разработчикам Python для использования на условиях открытых лицензий.

Это позволяет пользователям Python эффективно обмениваться опытом и сотрудничать, извлекая пользу из решений, которые другие уже создали для общих (а иногда и редких!) проблем, а также потенциально внося свои собственные решения в общий пул.

Это руководство описывает часть процесса, связанную с распространением. За руководством по установке других проектов Python обратитесь к руководству по установке.

Примечание

Корпоративным и другим институциональным пользователям: следует знать, что многие организации имеют собственную политику в отношении использования и участия в программном обеспечении с открытым исходным кодом. Учитывайте такую политику при использовании инструментов распространения и установки, предоставляемых с Python.

Ключевые терминыKey terms

  • Python Packaging Index – это общедоступный репозиторий пакетов с открытым исходным кодом, доступных для использования другими пользователями Python
  • Python Packaging Authority является группой разработчиков и авторов документации, отвечающих за поддержку и развитие стандартных инструментов упаковки, а также связанных метаданных и стандартов форматов файлов. Они поддерживают множество инструментов, документации и трекеров задач как на GitHub так и на BitBucket.
  • distutils – это оригинальная система сборки и распространения, впервые добавленная в стандартную библиотеку Python в 1998 году. Хотя прямое использование distutils постепенно прекращается, она заложила основу для текущей инфраструктуры упаковки и распространения, и не только остаётся частью стандартной библиотеки, но и её имя продолжает жить в других формах (например, в названии списка рассылки, используемого для координации разработки стандартов упаковки Python).
  • setuptools – это (в значительной степени) замена distutils, впервые опубликованная в 2004 году. Её самым заметным дополнением по сравнению с неизменёнными инструментами distutils была возможность объявлять зависимости от других пакетов. В настоящее время она рекомендуется как более регулярно обновляемая альтернатива distutils, обеспечивающая последовательную поддержку более современных стандартов упаковки в широком диапазоне версий Python.
  • wheel (в данном контексте) – это проект, который добавляет команду bdist_wheel к distutils/setuptools. Он создаёт кроссплатформенный формат двоичной упаковки (называемый «wheels» или «wheel-файлы», определённый в PEP 427), который позволяет устанавливать библиотеки Python, даже содержащие двоичные расширения, без необходимости локальной сборки.

Лицензирование открытого кода и сотрудничествоOpen source licensing and collaboration

В большинстве стран мира программное обеспечение автоматически защищено авторским правом. Это означает, что другим разработчикам требуется явное разрешение на копирование, использование, изменение и распространение программного обеспечения.

Лицензирование с открытым исходным кодом – это способ явного предоставления такого разрешения относительно последовательным образом, позволяя разработчикам эффективно делиться и сотрудничать, делая общие решения различных проблем свободно доступными. Это позволяет многим разработчикам уделять больше времени проблемам, которые относительно уникальны для их конкретной ситуации.

Инструменты распространения, поставляемые с Python, разработаны так, чтобы разработчикам было достаточно просто вносить свой собственный вклад в этот общий пул программного обеспечения, если они того пожелают.

Те же инструменты распространения также могут использоваться для распространения программного обеспечения внутри организации, независимо от того, опубликовано ли это программное обеспечение как открытое или нет.

Установка инструментовInstalling the tools

Стандартная библиотека не включает инструменты сборки, поддерживающие современные стандарты упаковки Python, поскольку основная команда разработчиков сочла важным иметь стандартные инструменты, которые работают последовательно даже на старых версиях Python.

Современные рекомендуемые инструменты сборки и распространения можно установить, вызвав модуль pip в командной строке:

python -m pip install setuptools wheel twine

Примечание

Для пользователей POSIX (включая Mac OS X и Linux) эти инструкции предполагают использование виртуального окружения.

Для пользователей Windows эти инструкции предполагают, что при установке Python был выбран параметр настройки системной переменной среды PATH.

Руководство пользователя по упаковке Python содержит более подробную информацию о рекомендуемых в настоящее время инструментах.

Чтение руководстваReading the guide

Python Packaging User Guide охватывает различные ключевые шаги и элементы, связанные с созданием проекта:

Как мне...?How do I...?

Это краткие ответы или ссылки для некоторых распространённых задач.

... выбрать имя для моего проекта?... choose a name for my project?

Это непростая тема, но вот несколько советов:

  • следует проверить Python Packaging Index, не занято ли уже это имя
  • проверить популярные хостинговые сайты, такие как GitHub, BitBucket и т.д., чтобы определить, не существует ли уже проект с таким именем
  • Проверьте, что выдаёт поиск по выбранному имени
  • Избегайте особенно распространённых слов, особенно многозначных, так как это может затруднить пользователям поиск вашего программного обеспечения при поиске

... создавать и распространять двоичные расширения?... create and distribute binary extensions?

Это довольно сложная тема, и существует множество альтернатив в зависимости от конкретных целей. Подробнее см. в Python Packaging User Guide.