Создание собственного Python-пакета#

с учетом версионирования и установки через pip install


🧱 1. Структура проекта#

Допустим, ты хочешь создать пакет nlp.

my_python_packages/
│
├── nlp/                     ← основная папка с кодом пакета
│   ├── __init__.py
│   ├── cleaner.py
│   └── tokenizer.py
│
├── tests/                   ← (опционально) тесты
│   └── test_cleaner.py
│
├── README.md                ← описание пакета (видно на PyPI)
├── pyproject.toml           ← конфигурация сборки
└── LICENSE                  ← лицензия (например MIT)

✍️ 2. Содержимое nlp/__init__.py#

from .cleaner import TextCleaner
from .tokenizer import simple_tokenize

__version__ = "0.1.0"

📦 3. Файл pyproject.toml (для build и pip)#

[project]
name = "nlp"
version = "0.1.0"
description = "Simple NLP tools like cleaner and tokenizer"
authors = [{name="Твоё Имя", email="you@example.com"}]
license = "MIT"
readme = "README.md"
requires-python = ">=3.7"
dependencies = []

[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

🔨 4. Сборка и локальная установка#

Установка инструментов#

pip install build

Сборка пакета#

python -m build

В каталоге dist/ появятся .tar.gz и .whl файлы.

Установка локально через pip#

pip install dist/nlp-0.1.0-py3-none-any.whl

Теперь ты можешь использовать пакет в любом месте:

from nlp import TextCleaner

🔄 5. Обновление версии#

Каждый раз, когда добавляешь классы/методы:

  1. Увеличь версию в nlp/__init__.py и в pyproject.toml Например: 0.1.00.2.0

  2. Пересобери пакет:

    python -m build
    
  3. Установи новую версию:

    pip install dist/nlp-0.2.0-py3-none-any.whl
    

💡 Совет: перед установкой новой версии лучше удалять старую:

pip uninstall nlp

🧪 (Опционально) Установка в editable-режиме для разработки#

Если ты хочешь разрабатывать и сразу видеть изменения:

pip install -e .

Это подключает текущую папку как пакет, и ты можешь редактировать код без пересборки.