pip
, нужно:
setup.py
, описывающий метаданные проекта (имя, версия, зависимости и т.д.).README.md
, LICENSE
, .gitignore
и другие.twine
: twine upload dist/*
(предварительно нужно собрать пакет: python setup.py sdist bdist_wheel
).pip install <имя_модуля>
.
Чтобы сделать Python модуль доступным для установки через `pip`, необходимо выполнить несколько шагов. Основная идея заключается в том, чтобы создать пакет Python и опубликовать его в PyPI (Python Package Index).
Организуйте свой проект в следующую структуру:
my_module/
├── my_module/
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
├── LICENSE
├── README.md
├── setup.py
└── MANIFEST.in (опционально)
Создайте файл `setup.py` в корневой директории проекта с примерно следующим содержимым:
from setuptools import setup, find_packages
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setup(
name="your_module_name", # Измените на название вашего модуля (уникальное на PyPI)
version="0.1.0", # Версия вашего модуля
author="Your Name",
author_email="your.email@example.com",
description="A short description of your module",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/yourusername/your_module_name", # Ссылка на репозиторий
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", # Укажите зависимости вашего модуля здесь
],
)
Важно: Замените значения полей (например, `name`, `version`, `author`, `description`, `url`, `install_requires`) на соответствующие вашему модулю. Поле `name` должно быть уникальным на PyPI. Поле `install_requires` содержит список зависимостей вашего модуля (другие пакеты Python, которые нужно установить вместе с вашим модулем).
Если вам нужно включить в пакет файлы, которые не являются Python-файлами или которые находятся не в пакете, используйте `MANIFEST.in`. Например, чтобы включить все файлы `.txt` в директории `data/`, добавьте:
include data/*.txt
В командной строке, в корневой директории вашего проекта, выполните:
python setup.py sdist bdist_wheel
Эта команда создаст два файла в директории `dist/`: `*.tar.gz` (исходный код) и `*.whl` (универсальный бинарный пакет). Пакет `wheel` обеспечивает более быструю установку.
Для публикации пакета вам понадобится аккаунт на PyPI или Test PyPI (для тестирования). Test PyPI нужен для проверки, что все работает правильно, прежде чем публиковать что-то "вживую".
Установите `twine`:
pip install twine
Загрузите пакеты на PyPI или Test PyPI:
twine upload dist/*
Вам будет предложено ввести имя пользователя и пароль от вашей учетной записи PyPI или Test PyPI.
Если используете Test PyPI, укажите репозиторий:
twine upload --repository testpypi dist/*
После успешной публикации пакета, его можно установить с помощью `pip`:
pip install your_module_name
Или с Test PyPI:
pip install --index-url https://test.pypi.org/simple/ your_module_name
В заключение, создание пакета Python для `pip` требует организации проекта, написания `setup.py`, сборки пакета и загрузки его на PyPI. Это позволяет другим разработчикам легко установить и использовать ваш модуль.