Содержание страницы
Распространение модулей Python¶Distributing Python Modules
- Электронная почта
Будучи популярным проектом с открытым исходным кодом, 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. Он создаёт кроссплатформенный формат двоичной упаковки (называемый «колёсами» или «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 содержит более подробную информацию о рекомендуемых в настоящее время инструментах.
Чтение руководства пользователя по упаковке Python¶Reading the Python Packaging User Guide
Руководство пользователя по упаковке Python охватывает различные ключевые шаги и элементы, связанные с созданием и публикацией проекта:
Как мне…?¶How do I…?
Это краткие ответы или ссылки для некоторых распространённых задач.
… выбрать имя для проекта?¶… choose a name for my project?
Это непростая тема, но вот несколько советов:
следует проверить Python Packaging Index, не занято ли уже это имя
Проверьте популярные хостинг-площадки (GitHub, Bitbucket и т.д.) – нет ли уже проекта с таким именем
Проверьте, что выдаёт поиск по выбранному имени
Избегайте особенно распространённых слов, особенно многозначных, так как это может затруднить пользователям поиск вашего программного обеспечения при поиске
… создавать и распространять бинарные расширения?¶… create and distribute binary extensions?
Это довольно сложная тема, и существует множество альтернатив в зависимости от конкретных целей. Подробнее см. в Python Packaging User Guide.