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

Электронная почта

distutils-sig@python.org

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

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

Это руководство охватывает часть процесса распространения. Руководство по установке других проектов Python см. в разделе installation guide.

Примечание

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

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

  • Python Package 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 files» и определенный в PEP 427), который позволяет устанавливать библиотеки Python, даже те, которые включают двоичные расширения, на систему без необходимости сборки локально.

Лицензирование и сотрудничество с открытым исходным кодом

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

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

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

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

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

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

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

python -m pip install setuptools wheel twine

Примечание

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

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

Руководство пользователя Python Packaging содержит более подробную информацию о currently recommended tools.

Чтение руководства пользователя по упаковке Python

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

Как мне…?

Это краткие ответы или ссылки на некоторые общие задачи.

… выбрать название для моего проекта?

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

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

  • проверить популярные хостинги, такие как GitHub, Bitbucket и т.д., чтобы узнать, есть ли уже проект с таким названием

  • проверьте, что появляется в веб-поиске по имени, которое вы рассматриваете

  • избегайте особенно распространенных слов, особенно тех, которые имеют несколько значений, так как они могут затруднить пользователям поиск вашего программного обеспечения

… создавать и распространять бинарные расширения?

На самом деле это довольно сложная тема, с множеством альтернатив в зависимости от того, чего именно вы хотите достичь. Дополнительную информацию и рекомендации можно найти в Руководстве пользователя по упаковке Python.

Вернуться на верх