Для упаковки и распространения Python модуля:
my_module/__init__.py, my_module/module.py, setup.py, README.md
(пример)setup.py
с информацией о пакете (название, версия, зависимости и т.д.) Используйте setuptools
.python setup.py sdist bdist_wheel
(создаст .tar.gz
и .whl
файлы в папке dist
).twine
: twine upload dist/*
. Требуется регистрация в PyPI.pip install dist/my_module-1.0.0-py3-none-any.whl
(пример названия файла)После загрузки в PyPI, модуль можно установить командой: pip install my_module
.
Чтобы упаковать собственный модуль Python в архив и распространить его, необходимо выполнить несколько шагов. Вот подробное описание процесса:
Сначала убедитесь, что ваш проект организован правильно. Рекомендуется следующая структура:
my_module/
├── my_module/
│ ├── __init__.py
│ └── your_module.py # Или другие ваши модули
├── README.md # Описание вашего модуля
├── LICENSE # Лицензия (например, MIT)
└── setup.py # Файл настройки для packaging
my_module/my_module
: Здесь хранятся исходные файлы вашего модуля. Обратите внимание на двойную структуру. Первая папка my_module
это корневая директория проекта, а вторая my_module
- папка, содержащая код модуля.__init__.py
: Пустой файл или файл, содержащий инициализационный код пакета. Необходим, чтобы Python распознал директорию как пакет.your_module.py
: Файл(ы) с кодом вашего модуля.README.md
: Документация к вашему модулю, описывающая его назначение, установку и использование. Формат Markdown.LICENSE
: Файл, содержащий информацию о лицензии, под которой распространяется ваш модуль. Важно указать лицензию, чтобы другие знали, как они могут использовать ваш код.setup.py
: Ключевой файл, который содержит метаданные о вашем пакете и инструкции по его сборке и установке.setup.py
:
Этот файл содержит информацию о вашем модуле, такую как имя, версия, автор, описание и зависимости. Вот пример:
from setuptools import setup, find_packages
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setup(
name="my_module", # Имя вашего модуля (должно быть уникальным в PyPI)
version="0.1.0", # Версия вашего модуля
author="Your Name", # Ваше имя
author_email="your.email@example.com", # Ваш email
description="A short description of your module", # Краткое описание
long_description=long_description, # Полное описание из README.md
long_description_content_type="text/markdown", # Укажите тип содержимого long_description
url="https://github.com/your_username/my_module", # URL вашего репозитория (необязательно)
packages=find_packages(), # Автоматически находит все пакеты в проекте
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License", # Укажите лицензию
"Operating System :: OS Independent",
],
python_requires='>=3.6', # Минимальная версия Python
install_requires=[
# Перечислите зависимости вашего модуля (если есть)
# "requests>=2.20.0",
],
)
Обязательно замените значения полей на ваши собственные.
Используйте setuptools
для сборки пакета. В командной строке, находясь в корневой директории проекта (там, где находится setup.py
), выполните:
python setup.py sdist bdist_wheel
Эта команда создаст два типа архивов:
sdist
: Создает архив с исходным кодом (.tar.gz
).bdist_wheel
: Создает предварительно скомпилированный пакет (.whl
) для более быстрой установки. Этот формат предпочтительнее.Архивы будут созданы в директории dist
.
Есть несколько способов распространить ваш пакет:
pip
:
pip install path/to/your/package
pip install git+https://github.com/your_username/your_repository.git@branch_name
При обновлении пакета необходимо изменить номер версии в файле setup.py
. После этого повторите шаги по сборке и распространению пакета.
Важные замечания: