Распространение модулей Python
- Электронная почта
В качестве популярного проекта с открытым исходным кодом Python обладает активным сообществом разработчиков и пользователей, которые также предоставляют свой программный код другим разработчикам Python под лицензиями с открытым исходным кодом.
Это позволяет пользователям Python эффективно делиться опытом и сотрудничать, извлекая пользу из решений, созданных другими для распространённых (и иногда даже редких!) проблем, а также потенциально внося свой вклад в общее хранилище решений.
Данное руководство посвящено части процесса распространения. Для руководства по установке других проектов Python обратитесь к руководству по установке.
Примечание
Для корпоративных и других институциональных пользователей следует учитывать, что многие организации имеют свои собственные правила использования и внесения вклада в программное обеспечение с открытым исходным кодом. Пожалуйста, учитывайте эти правила при использовании инструментов распространения и установки, предоставляемых с Python.
Ключевые термины
- Индекс пакетов Python (Python Package Index) — это общедоступный репозиторий пакетов с открытым исходным кодом, предоставляемых для использования другими пользователями Python
- Авторитет по пакетированию 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 здесь.
Изучение руководства пользователя по пакетированию Python
Руководство пользователя по пакетированию Python охватывает различные ключевые этапы и элементы, связанные с созданием и публикацией проекта:
Как мне…?
Это быстрые ответы или ссылки для некоторых распространённых задач.
… выбрать имя для моего проекта?
Это не лёгкая задача, но вот несколько советов:
- Проверьте Индекс пакетов Python, чтобы убедиться, что имя ещё не используется
- Проверьте популярные хостинг-сайты, такие как GitHub, Bitbucket и т. д., чтобы убедиться, что проект с таким именем ещё не существует
- Проверьте, что появляется при поиске в интернете имени, которое вы рассматриваете
- Избегайте очень распространённых слов, особенно многозначных, так как это может затруднить пользователям поиск вашего программного обеспечения при поиске
… создать и распространить бинарные расширения?
Это довольно сложная тема с различными доступными альтернативами в зависимости от того, чего вы хотите достичь. Подробную информацию и рекомендации см. в руководстве пользователя по пакетированию Python.
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.9/distributing/index.html