Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

9 Commits

Repository files navigation

Как загрузить свой модуль на PyPI?

Для начала вам нужно написать модуль, который вы будете публиковать.

Также я вам советую для начала опубликовать модуль на Test-PyPI, потому что у вас могут возникнуть проблемы в коде, баги, которые вы не заметили. Тем самым вы сможете уберечь себя от лишних релизов на PyPI.

Зарегистрируйтесь на Test-PyPI и PyPI, регистрация простая.

Содержание

Poetry - Python

  1. 🥑 Установка poetry
  2. 🍍 Иницилизация, подготовка к публикации
  3. 🍑 Публикация модуля на Test-PyPI
  4. 🍇 Публикация модуля на PyPI

🥑 Установка poetry

Официальный сайт Poetry, здесь вы сможете более подробней разобраться с poetry

Способы установки poetry

  • 🥀 cURL
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
  • 🍃 PowerShell
$ (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
  • 🍋 pip
$ pip install --user poetry

🍍 Иницилизация, подготовка к публикации

Открываем CMD, переходим в директорию где находится папка/файл и вводим команду: poetry init

[Packagename]: названиевашегофайлаилипапки, вкоторойхранятсяфайлыскодом. Поумолчанию-текущаядиректорию
[Version] (0.1.0): желаемаеверсияпроекта, поумолчанию-0.1.0
[Description]: Небольшоеописаниепроекта
[Author] (You<youremail@example.com>): автор(ы) проекта
[License]: текстовыйдокументсописаниемлицензии, поумолчанию-ничего
[CompatiblePythonversion] (3.x): ЖелаемаяверсияPython, поумолчанию-текущая
[... maindependencies]: Хотителиопределитьосновныезависимостипроекта? Зависимости, этодоп. модули, которыебудутустанавливатьсясвашиммодулем

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

В директории создался файл pyproject.toml, вы можете открыть его в редакторе и добавить пару строк. Например, можно указать большое описание для проекта, для этого нужно написать строчку readme = "файл с описанием (к примеру README.md)", также вы можете указать ключевые слова keywords = ["список из максимум 5 ключевых слов"], можно указать свой репозиторий на GitHub repository = "ссылка на ваш репозиторий", или страницу проекта homepage = "ссылка на страницу". Подробней в оф. документации Poetry

🍑 Публикация модуля на Test-PyPI

Вот и пришло время опубликовать модуль в открытый доступ!
Чтобы опубликовать модуль на Test-PyPI нужно прописать следующуе:

poetryconfigrepositories.testpypihttps://test.pypi.org/legacy/
poetrypublish-rtestpypi--usernameYOUR_USERNAME--passwordYOUR_PASSWORD--build

🍇 Публикация модуля на PyPI

Все проще чем кажется. Но прежде чем опубликовать модуль на основной PyPI, советую опубликовать его на test.pypi.org и проверить на наличие багов, ошибок в коде и т.п.

poetrypublish--usernameYOUR_USERNAME--passwordYOUR_PASSWORD--build

Twine

  1. ❤ Установка twine
  2. 🧡 Создание setup.py & setup.cfg
  3. 💛 Иницилизация проекта
  4. 💜 Публикация на Test-PyPi и PyPi

❤ Установка twine

GitHub Twine
Способы установки Twine

  • pip
$ pip install twine

🧡 Создание setup.py & setup.cfg

Для начала создадим рабочую директорию.

$ md workplace
$ cd workplace

Представим структуру директории.

[workplace (наша рабочая директория)]
|
|___[package (наш пакет с модулями)]
|
|__...

В рабочей директории нужно создать два файла, которые будут отвечать за настройку нашего проекта, для того чтобы в дальнешейм опубликовать его на PyPi.
Примеры приведенные ниже использовать без точки (.) в конце

Создание файла в консоли, на Windows
  1. echo > setup.cfg.
  2. echo > setup.py.
Создание файла в консоли, на Linux
  1. touch setup.cfg.
  2. touch setup.py.

setup.cfg

[egg_info]
tag_build = tag_date = 0

setup.py

fromsetuptoolsimportsetup, find_packages# pip install setuptoolsfromioimportopendefread(filename):
"""Прочитаем наш README.md для того, чтобы установить большое описание."""withopen(filename, "r", encoding="utf-8") asfile:
returnfile.read()
setup(name="Название твоего пакета",
version="0.1", # Версия твоего проекта. ВАЖНО: менять при каждом релизеdescription="Короткое описание твоего проекта на PyPi",
long_description=read("README.md"), # Здесь можно прописать README файл с длинным описаниемlong_description_content_type="text/markdown", # Тип контента, в нашем случае text/markdownauthor="Имя автора",
author_email="почта_автора@gmail.com",
url="https://github.com/Fsoky/Upload-library-to-PyPI", # Страница проектаkeywords="api some_keyword tools", # Ключевые слова для упрощеннего поиска пакета на PyPipackages=find_packages() # Ищем пакеты, или можно передать название списком: ["package_name"]
)

💛 Иницилизация проекта

Чтобы иницилизировать проект, в консоли нужно прописать:

$ python setup.py sdist

После чего в нашей рабочей директории создадуться папки: dist, package_name.egg_info.
В .egg_info, вы можете найти небольшую информацию о своем проекте, в dist хранится архив, который будет публиковаться на PyPi.

💜 Публикация на Test-PyPi и PyPi

Чтобы опубликовать проект, воспользуемся утилитой Twine.

$ twine upload -r testpypi dist/*
  • Публикация на PyPI
$ twine upload dist/*

После этой команды, вы увидите:

username: Ваш ник на PyPi
password: Сюда вводите ваш пароль (его не будет видно)

В случае успешной публикации, вы получите ссылку на PyPi с проектом.

About

Как загрузить свой модуль на PyPi?

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors