Распространение модулей Python
В качестве популярного проекта с открытым исходным кодом Python обладает активным сообществом разработчиков и пользователей, которые также предоставляют своё программное обеспечение другим разработчикам Python на условиях лицензии с открытым исходным кодом.
Это позволяет пользователям Python эффективно делиться и сотрудничать, получая пользу от решений, уже созданных другими для общих (и иногда даже редких!) проблем, а также, потенциально, вносить свои собственные решения в общий пул.
Это руководство охватывает часть процесса распространения. Для получения руководства по установке других проектов Python обратитесь к руководству по установке.
Примечание
Для корпоративных и других институциональных пользователей следует учитывать, что во многих организациях существуют свои политики использования и внесения вклада в программное обеспечение с открытым исходным кодом. Пожалуйста, учитывайте такие политики при использовании инструментов распространения и установки, предоставляемых с 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-файлами» и определённый в PEP 427), который позволяет устанавливать библиотеки Python, даже те, которые включают двоичные расширения, на систему без необходимости локальной сборки.
Лицензирование и сотрудничество с открытым исходным кодом
В большинстве стран программное обеспечение автоматически защищено авторским правом. Это означает, что другим разработчикам требуется явное разрешение на копирование, использование, изменение и распространение программного обеспечения.
Лицензирование с открытым исходным кодом — это способ явного предоставления такого разрешения относительно согласованным образом, позволяя разработчикам эффективно делиться и сотрудничать, делая общие решения различных проблем свободно доступными. Это освобождает многих разработчиков от необходимости тратить время на решение задач, специфичных для их ситуации.
Инструменты распространения, предоставляемые с Python, предназначены для того, чтобы сделать вклад разработчиков в этот общий пул программного обеспечения достаточно простым, если они этого пожелают.
Те же инструменты распространения также могут использоваться для распространения программного обеспечения внутри организации, независимо от того, публикуется ли это программное обеспечение как программное обеспечение с открытым исходным кодом или нет.
Установка инструментов
Стандартная библиотека не содержит инструментов сборки, которые поддерживают современные стандарты упаковки Python, так как основная команда разработчиков сочла важным иметь стандартные инструменты, работающие согласованно, даже в старых версиях Python.
Рекомендуемые в настоящее время инструменты сборки и распространения можно установить, вызвав модуль pip в командной строке:
python -m pip install setuptools wheel twine
Примечание
Для пользователей POSIX (включая macOS и Linux), эти инструкции предполагают использование виртуальной среды.
Для пользователей Windows эти инструкции предполагают, что при установке Python был выбран вариант настройки переменной среды PATH.
Более подробную информацию о рекомендуемых инструментах можно найти в руководстве для пользователей Python Packaging.
Чтение руководства пользователя Python Packaging
Руководство пользователя Python Packaging охватывает различные ключевые шаги и элементы, связанные с созданием и публикацией проекта:
Как мне…?
Вот быстрые ответы или ссылки на некоторые распространённые задачи.
… выбрать имя для моего проекта?
Это нелёгкая тема, но вот несколько советов:
- проверьте Python Package Index, чтобы узнать, не используется ли это имя уже
- проверьте популярные хостинг-сайты, такие как GitHub, Bitbucket и т. д., чтобы узнать, не существует ли уже проекта с таким именем
- проверьте, что появляется при поиске в интернете по введённому вами имени
- избегайте слишком распространённых слов, особенно тех, которые имеют несколько значений, так как это может затруднить пользователям поиск вашего программного обеспечения при поиске
… создать и распространить двоичные расширения?
Это довольно сложная тема с различными доступными альтернативами в зависимости от того, чего вы хотите достичь. Для получения дополнительной информации и рекомендаций обратитесь к руководству пользователя Python Packaging.
© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.10/distributing/index.html