summaryrefslogtreecommitdiff
path: root/PYTHON/Своя библиотека для Python.md
diff options
context:
space:
mode:
authorvlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
committervlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
commite5abc1fe99340b979b18864d978179f71fe8f5c5 (patch)
tree98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /PYTHON/Своя библиотека для Python.md
First
Diffstat (limited to 'PYTHON/Своя библиотека для Python.md')
-rw-r--r--PYTHON/Своя библиотека для Python.md161
1 files changed, 161 insertions, 0 deletions
diff --git a/PYTHON/Своя библиотека для Python.md b/PYTHON/Своя библиотека для Python.md
new file mode 100644
index 0000000..d1c365a
--- /dev/null
+++ b/PYTHON/Своя библиотека для Python.md
@@ -0,0 +1,161 @@
+Часто в проектах на Python мы используем внешние библиотеки — уже готовые скрипты с нужными нам функциями, которые упрощают разработку. Теперь настало время сделать свою первую библиотеку на Python с нуля.
+
+Есть несколько способов собрать свою библиотеку — и все они рабочие. Мы выбрали способ, который рекомендует Гвидо ван Россум — автор языка Python, но вы можете выбрать любой другой подход.
+
+## Подготовка
+
+Чтобы сборка библиотеки прошла без проблем, обновим менеджер пакетов pip. Для этого в командной строке выполним команду:
+
+```markup
+pip install --upgrade pip
+```
+
+Теперь установим пакет twine — он нам поможет опубликовать свою библиотеку в сети, чтобы её мог установить любой желающий:
+
+```markup
+pip install --upgrade twine
+```
+
+Затем поставим `hatchling` — пакет для сборки серверной части библиотеки:
+
+```markup
+pip install hatchling
+```
+
+И наконец, установим пакет `build`, чтобы создать загрузочные архивы с нашей библиотекой:
+
+```markup
+pip install --upgrade build
+```
+
+## Структура библиотеки
+
+Библиотека в Python — это не просто один скрипт, а целый проект, в котором есть много разных файлов, каждый из которых отвечает за что-то своё.
+
+Первое, что делаем, — создаём папку `src`, в которой будет лежать наша новая библиотека. После этого внутри этой папки создаём ещё одну — с именем создаваемой библиотеки. Как мы назовём эту вложенную папку, так и будет называться наша библиотека. Для проекта мы выбрали название `beginning_package`.
+
+Теперь внутри папки с названием создаём два файла:
+
+- __init__.py — файл, который покажет компьютеру, что beginning_package — это не просто папка, а целый модуль с определённой функциональностью;
+- main.py — тут будет код нашей библиотеки.
+
+Теперь делаем остальной обвес и внутри основной папки создаём такое:
+
+- папку tests — если к библиотеке делаются тесты, они отправляются сюда. У нас их пока не будет, но папка, даже пустая, всё равно нужна, таковы правила;
+- LICENSE — файл с лицензией. Расширения нет, только имя;
+- pyproject.toml — отвечает за конфигурацию и серверную часть библиотеки;
+- README.md — информация о библиотеке: что она делает, зачем нужна и какие у неё особенности.
+
+В итоге по структуре должно получиться что-то вроде этого:
+
+![Тут ещё есть папка venv для виртуального окружения, но нам она сегодня не понадобится](https://thecode.media/wp-content/uploads/2024/04/unnamed-3.png)
+
+Тут ещё есть папка venv для виртуального окружения, но нам она сегодня не понадобится
+
+## Оформляем лицензию и файл README.md
+
+Наша библиотека будет относиться к свободному ПО, поэтому в файл с лицензией мы вставляем стандартный текст MIT License. В первой строке указываем копирайт и название проекта:
+
+Текст лицензии
+
+![Оформляем лицензию и файл README.md](https://thecode.media/wp-content/uploads/2024/04/unnamed-1-1.png)
+
+Точно так же заполняем файл README.md. Обычно здесь показывают, какие функции доступны в пакете, причём здесь уже можно использовать маркдаун для оформления текста. У нас учебная библиотека, поэтому сделаем максимально простое описание:
+
+```markup
+This library is not that useful. Perhaps someday it will become great.
+```
+
+(Это не очень полезная библиотека. Возможно, когда-нибудь она станет лучше)
+
+![Оформляем лицензию и файл README.md](https://thecode.media/wp-content/uploads/2024/04/unnamed-2-1.png)
+
+## Заполняем pyproject.toml
+
+Рyproject.toml — это файл, который отвечает за служебную часть библиотеки: как она называется, какая версия, какая версия Python нужна, по какой лицензии распространяется и так далее. Когда мы хотим установить новую библиотеку, система сначала смотрит в этот файл и проверяет, соответствует ли ваша версия Python той, что нужна для работы.
+
+Файл состоит из блоков, каждый из которых отвечает за что-то своё. Начнём с блока `build-system` — он отвечает за параметры сборки загрузочного архива. В нашем проекте за серверную часть отвечает `Hatchling`, поэтому указываем его:
+
+```python
+[build-system]
+requires = ["hatchling"]
+build-backend = "hatchling.build"
+```
+
+Python
+
+Copy
+
+Дальше идут основные параметры проекта: название, выпуск, авторы, описание, имя файла readme, требования к версии Python, язык программирования, тип лицензии и совместимость с ОС:
+
+```python
+[project]
+name = ""
+version = "0.0.1"
+authors = [
+ { name="", email="" },
+]
+description = ""
+readme = "README.md"
+requires-python = ">=3.10.0"
+classifiers = [
+ "Programming Language :: Python :: 3",
+ "License :: OSI Approved :: MIT License",
+ "Operating System :: OS Independent",
+]
+```
+
+Python
+
+Copy
+
+В конце можно добавить разные ссылки, например, на репозиторий в GitHub, домашнюю страницу проекта или на дополнительные материалы:
+
+```python
+[project.urls]
+Homepage = ""
+Issues = ""
+```
+
+Python
+
+Copy
+
+## Пишем библиотеку
+
+В папке с библиотекой два файла — `__init.py__` и `main.py`. Файл `__init__.py` можно оставить пустым — он нужен для того, чтобы сборщик понял, что это именно цельный проект и его нужно собрать из других файлов в той же папке.
+
+В `main.py` пишем сам код библиотеки. Так как это самая первая и учебная наша библиотека, сделаем там только одну функцию с приветствием:
+
+```python
+def greeting():
+ return "Hello, I'm your first library!"
+```
+
+Python
+
+Copy
+
+## Создаём загрузочные архивы
+
+Цель этого этапа — собрать и подготовить библиотеку к загрузке в менеджер пакетов `pip`, откуда каждый сможет её установить. Для этого открываем командную строку, переходим в папку с проектом и собираем архив:
+
+```markup
+py -m build
+```
+
+![Пишем и публикуем свою первую библиотеку для Python](https://thecode.media/wp-content/uploads/2024/04/unnamed-3-1.png)
+
+Если в проводнике мы посмотрим на структуру папок, то увидим, что там появилась новая папка — `dist`, в которой и хранятся наши подготовленные для загрузки архивы:
+
+![Пишем и публикуем свою первую библиотеку для Python](https://thecode.media/wp-content/uploads/2024/04/unnamed-4-1.png)
+
+Заглянем внутрь:
+
+![Пишем и публикуем свою первую библиотеку для Python](https://thecode.media/wp-content/uploads/2024/04/unnamed-5-1.png)
+
+## Создаём токен для подписи библиотеки
+
+PyPi — это хранилище открытого программного обеспечения для Python. Чтобы опубликовать там библиотеку, нужно иметь аккаунт и получить уникальный API-токен.
+
+Для этого заходим на официальный сайт [pypi.org](https://pypi.org/), заводим новый аккаунт, привязываем Гугл-аутентификатор для безопасности и переходим [в настройки аккаунта](https://pypi.org/manage/account/). Там прокручиваем страницу вниз до блока API tokens: \ No newline at end of file