Spec-Zone.ru › Python 3.8

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

Email

distutils-sig@python.org

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

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

В этом руководстве рассматривается процесс распространения. Для получения руководства по установке других проектов Python, обратитесь к руководству по установке.

Примечание

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

Основные термины

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

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

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

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

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

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

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

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

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

python -m pip install setuptools wheel twine

Примечание

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

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

В руководстве для пользователей Python Packaging содержится больше подробностей о рекомендуемых в настоящее время инструментах.

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

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

  • Структура проекта
  • Сборка и упаковка проекта
  • Загрузка проекта в индекс пакетов Python
  • Файл .pypirc

Как мне…

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

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

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

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

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

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

См. также

Руководство пользователя Python Packaging: Двоичные расширения

© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/distributing/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API