Публикация проекта в PyPI

PyPI — это хранилище пакетов Python.

Регистрируемся на сайте PyPI и на TestPyPI. Поле PGP Key ID заполнять необязательно. На TestPyPI регистрироваться не обязательно, это хранилище нужно только для тренировки, перед тем как опубликовать пакет в PyPI.

В домашней папке пользователя создаем файл .pypirc. Точка в начале имени файла обязательна. Этот файл нужен программе twine, которая выкладывает пакеты. О ней пойдет речь позже.

Добавляем в файл следующее содержимое.

[distutils]
index-servers =
    pypi
    testpypi

[pypi]
repository = https://pypi.python.org/pypi
username = Логин
password = Пароль

[testpypi]
repository = https://testpypi.python.org/pypi
username = Логин
password = Пароль

Вместо Логин и  Пароль указываем логин и пароль, использованные при регистрации на сайтах PyPI и TestPyPI.

Допустим проект называется example, тогда структура файлов и папок проекта должна выглядеть следующим образом.

  • example
    • example
      • __init__.py
      • foo.py
    • LICENSE.txt
    • MANIFEST.in
    • README.rst
    • setup.cfg
    • setup.py

Для большей наглядности приведу изображение.

pypi-dirs-and-files.png

Примечание: для проекта следует выбрать уникальное имя, которого нет в хранилище.

Для публикации проекта нужно заполнить файл setup.py, все остальные файлы могут быть пустыми.

Файл setup.py следует заполнить следующим образом.

from setuptools import setup, find_packages

setup(
    name='example',
    version='0.0.1',
    description='Короткое описание',
    packages=find_packages(),
    author='Имя автора',
    author_email='Почта@автора',
    url='http://Сайт проекта',
)

В файле лучше использовать только латиницу.

Чтобы собрать пакет, в папке, где содержится файл setup.py (папке проекта), выполняем следующую команду .

python setup.py sdist

После этого в папке проекта появятся папки dist и example.egg-info.

pypi-dirs-and-files-after-build.png

Устанавливаем программу twine, которая позволит разместить пакет в хранилище, следующей командой.

pip install twine

Зарегистрируем пакет в тестовом хранилище TestPyPI следующей командой.

twine register -r testpypi dist/example-0.0.1.tar.gz

С помощью опции -r задается хранилище, которое было указано в файле .pypirc.

Загрузим пакет в хранилище следующей командой.

twine upload -r testpypi dist/example-0.0.1.tar.gz

Пакет появится в списке пакетов на сайте хранилища.

testpypi-your-packages.png

За более подробной информацией следует обратится к официальному руководству.

Реклама