Skip to content

Fsoky/PyPITutorial

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

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

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

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

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

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

poetry config repositories.testpypi https://test.pypi.org/legacy/
poetry publish -r testpypi --username YOUR_USERNAME --password YOUR_PASSWORD --build

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

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

poetry publish --username YOUR_USERNAME --password YOUR_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

from setuptools import setup, find_packages # pip install setuptools
from io import open


def read(filename):
   """Прочитаем наш README.md для того, чтобы установить большое описание."""
   with open(filename, "r", encoding="utf-8") as file:
      return file.read()


setup(name="Название твоего пакета",
   version="0.1", # Версия твоего проекта. ВАЖНО: менять при каждом релизе
   description="Короткое описание твоего проекта на PyPi",
   long_description=read("README.md"), # Здесь можно прописать README файл с длинным описанием
   long_description_content_type="text/markdown", # Тип контента, в нашем случае text/markdown
   author="Имя автора",
   author_email="почта_автора@gmail.com",
   url="https://github.com/Fsoky/Upload-library-to-PyPI", # Страница проекта
   keywords="api some_keyword tools", # Ключевые слова для упрощеннего поиска пакета на PyPi
   packages=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

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy