CoderCastrov logo
CoderCastrov
Парсер

Опубликовать ваш пакет на PyPI

Опубликовать ваш пакет на PyPI
просмотров
5 мин чтение
#Парсер

Код парсера полезен, когда я использую его сам, но лучше, если я могу поделиться им с сообществом, чтобы он мог развиваться дальше и становиться больше. Один из способов - опубликовать пакет на pypi.org. Я объясню, как мы можем загрузить проект на PyPI.

Используемые пакеты

Для распространения пакета на PyPI нам понадобятся пакеты build, twine и setuptools. Убедитесь, что вы уже установили эти пакеты, прежде чем перейти к следующему шагу. Чтобы сделать это, выполните следующие шаги (Mac):

Установка build

python3 -m pip install — upgrade build

Установка twine

python3 -m pip install — upgrade twine

Установка setuptools (обычно уже установлен по умолчанию)

pip install setuptools

Создание Readme.md

Readme.md

Позже, на странице вашего проекта в PyPI, вам понадобится файл readme.md, чтобы объяснить ваш код. Убедитесь, что вы уже создали этот файл. Используйте этот руководство для создания хорошего файла readme.md: [_https://www.markdownguide.org/cheat-sheet/_](https://www.markdownguide.org/cheat-sheet/)

Создание setup.py

Формат внутри setup.py является стандартным из учебника по упаковке на официальном веб-сайте Python. Вы можете найти его здесь: [https://packaging.python.org/en/latest/tutorials/packaging-projects/](https://packaging.python.org/en/latest/tutorials/packaging-projects/)

import setuptools импортируется, потому что он необходим для создания вашего пакета.

Следующая строка означает, что вы используете файл readme.md в качестве описания для страницы вашего проекта на PyPI.org.

На следующей строке внутри setuptools.setup() находятся метаданные вашего пакета. Вам нужно изменить их, чтобы они соответствовали вашему проекту. Следуйте указаниям ниже, чтобы их изменить:

  • name: Я использую Kumparan-TrendingNews. Это имя распространения вашего пакета. Это имя будет использоваться для установки вашего пакета с помощью команды pip и не должно быть уже занято на pypi.org. Поэтому убедитесь, что оно уникально, еще не занято на pypi.org и отражает ваш проект, чтобы его легко узнать.
  • version: Эта версия на ваше усмотрение как разработчика. Обычно используется 1.0.0 для стабильной версии, поэтому я выбираю 1.0.0, так как он уже хорошо работает. Вы также можете использовать 0.0.1 для начала и продолжать использовать 3-й или 2-й разряд, если вы не уверены, что ваш код уже стабилен.
  • install_requires: Это пакеты, которые также будут установлены, когда кто-то устанавливает ваш пакет. Это самый удобный способ распространения вашего пакета, так как другим не нужно устанавливать требуемые пакеты отдельно. В этом случае я указываю beautifulsoup4 и requests. Убедитесь, что вы ставите одинарные кавычки вокруг имени пакета и разделяете их запятой (,) каждый требуемый пакет.
  • author: Это ваше имя в качестве разработчика.
  • author_email: Это ваш электронный адрес.
  • description: Это будет использоваться в качестве заголовка описания вашего пакета.
  • long_description: Это описание, которое будет показано на странице вашего проекта на PyPI. В этом случае будет использоваться readme.md.
  • url: это URL-адрес вашей домашней страницы проекта, обычно ссылка на Github.
  • project_urls: это дополнительные ссылки, связанные с вашим проектом. Может быть ваш веб-сайт, документация, система отслеживания проблем или другое. В этом случае я использую его для перенаправления на мой medium.
  • classifiers: это дополнительные метаданные вашего проекта. Вы должны указать, как минимум, на какой версии Python работает ваш код, под какой лицензией доступен ваш пакет и на каких операционных системах работает ваш пакет. Полный список классификаторов можно найти здесь [https://pypi.org/classifiers/](https://pypi.org/classifiers/). В этом случае мой код работает на Python3, лицензирован под GPLv3+, независим от ОС и уже стабилен.

Сборка

После создания и изменения файла setup.py в соответствии с вашим проектом продолжайте сборку пакета. Поскольку пакет build уже установлен, просто выполните следующую команду python3 -m build. Это создаст новую папку с именем dist и .egg-info.

Загрузка

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

Создание токена API PyPI

После входа на pypi.org перейдите в "Настройки учетной записи".

Прокрутите вниз, в разделе "Токены API" нажмите "Добавить токен API".

Заполните Название токена и выберите Вся учетная запись (все проекты) в разделе Область. Будьте осторожны, так как этот токен API будет иметь разрешения на загрузку для всех ваших текущих и будущих проектов. Затем нажмите Добавить токен.

Теперь у вас есть токен API PyPI.

Выполните команду Twine для загрузки

Введите эту команду в терминале python3 -m twine upload — repository pypi dist/*. Появится сообщение с просьбой ввести ваше имя пользователя и пароль. В поле имени пользователя введите __token__, а в поле пароля введите токен.

(Бонус) Автоматизация процесса сборки и загрузки

Все необходимые действия для загрузки вашего пакета выполнены. Но возникают проблемы.

  • Папка dist не удаляется автоматически.
  • Вы должны вводить имя пользователя и пароль каждый раз, когда хотите загрузить новую версию вашего пакета.
Automate Build and Upload

Как сделать это максимально простым? Ну, это довольно просто и мощно. На Mac я использую команду bash rm -rf dist, чтобы удалить папку и ее содержимое без запроса подтверждения. Другие две строки - это команды для сборки и загрузки, о которых я ранее упоминал. Затем я сохраняю файл в корневой папке проекта с именем build-upload.sh. sh - это формат файла bash. Если вы работаете в Windows, вы можете найти эквивалентный код.

Последнее, что нужно сделать, это сохранить ваш токен PyPI API на вашем компьютере. Перейдите на страницу токена PyPI API и увидите, что есть способ сохранить токен в файле .pypirc. Формат будет выглядеть примерно так:

Сохраните его в путь $HOME/. Затем в терминале просто введите bash + имя файла, и он будет выполнен автоматически. Вы можете найти этот проект на PyPI здесь:

Kumparan-TrendingNews

Этот пакет получает последние данные о трендах новостей с Kumparan.com. Этот пакет парсит Kumparan для получения...

pypi.org

Готово! Вот и все для освоения Python с помощью создания парсера для трендовых новостей на kumparan.com, которое я разделил на четыре части. До сих пор это довольно большой обзор того, что вы можете сделать как компетентный разработчик.

Больше контента на plainenglish.io. Подпишитесь на наш бесплатный еженедельный бюллетень. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.