Поиск по сайту:

Как публиковать пакеты Python в PyPI с помощью Poetry в Ubuntu 22.04


Введение

PyPI — это официальный репозиторий Python для загрузки и скачивания пакетов Python, который будет использоваться в этом руководстве. Это официальный сторонний источник пакетов Python, которым управляет Python Software Foundation. Публикация ваших пакетов на PyPI делает их общедоступными для установки вами или кем-либо еще.

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

Предпосылки

  • Сервер Ubuntu 22.04, настроенный в соответствии с нашим руководством по первоначальной настройке сервера для Ubuntu 22.04, с пользователем без полномочий root с привилегиями sudo и включенным брандмауэром.
  • Последняя версия Python 3, установленная на вашем компьютере после выполнения шага 1 по установке Python 3 и настройке среды программирования на сервере Ubuntu 22.04.
  • Поэзия установлена в вашей системе, следуя этому руководству о том, как установить Поэзию для управления зависимостями Python в Ubuntu 22.04.

Шаг 1 — Создание учетной записи PyPI

Чтобы опубликовать пакет в PyPI, вам необходимо создать учетную запись. Перейдите на официальную страницу регистрации в веб-браузере:

Затем вам нужно будет включить аутентификацию по токену, чтобы безопасно использовать свои учетные данные PyPI с Poetry.

Шаг 2 — Включение проверки подлинности токена для PyPI

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

Прокрутите вниз, пока не дойдете до раздела «Токены API». Нажмите «Добавить токен API»:

На следующей странице вы можете назвать свой токен. В этом руководстве он будет называться poetry, но вы можете выбрать любое имя:

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

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

Добавьте свой токен API в Poetry с помощью этой команды:

  1. poetry config pypi-token.pypi your-api-token

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

Теперь вы готовы создать, а затем опубликовать свой проект.

Шаг 3 — Создание вашего проекта

Сборка — это то же самое, что и упаковка вашего проекта, и это обязательный шаг, прежде чем вы сможете его опубликовать. Чтобы создать проект, введите следующее:

poetry build
Output
Building sammy-poetry (0.1.0) - Building sdist - Built sammy-poetry-0.1.0.tar.gz - Building wheel - Built sammy_poetry-0.1.0-py3-none-any.whl

Будет выведено два файла. Во-первых, это источник sdist, который выводится в файл tar.gz. Второй — это скомпилированный пакет, представляющий собой wheel, который выводится в файл .whl. С этими файлами вы теперь готовы опубликовать свой пакет Python в PyPI.

Шаг 4 — Публикация пакета Python в PyPI

PyPI является целевым объектом публикации по умолчанию для Poetry. Поскольку ваш токен API аутентификации уже установлен, вашей команде публикации не нужно будет снова включать ваши учетные данные.

Чтобы опубликовать скомпилированный пакет, введите следующее:

poetry publish
Output
Publishing sammy-poetry (0.1.0) to PyPI - Uploading sammy-poetry-0.1.0.tar.gz 100% - Uploading sammy_poetry-0.1.0-py3-none-any.whl 100%

Теперь вы можете проверить опубликованный пакет. Откройте свои проекты PyPI в браузере.

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

Примечание. Вы можете создать и опубликовать свой пакет в PyPI одной командой, добавив следующий флаг к вызову publish:

  1. poetry publish --build

Это может быть более эффективным в зависимости от зрелости вашего проекта и рабочего процесса.

Заключение

В этом уроке вы использовали Poetry для создания и публикации. Вы создали учетную запись PyPI, настроили аутентификацию API Token с помощью Poetry, затем скомпилировали свой проект перед его публикацией. Ваш пакет доступен как зависимость публично, и даже может быть включен как зависимость через Poetry.

Затем вы можете глубже погрузиться в Python, ознакомившись с нашей серией руководств How To Code in Python.