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

Email:distutils-sig@python.org

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

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

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

Примечание

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

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

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

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

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

Как мне…?

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

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

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

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

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

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