как загрузить python проект на pypi


Иногда вы сделали какой-то публичный проект на python и хотите его максимально и удобно распространять. Самый простой способ для этого, как ни странно, pip install.

Подробнее про pip можно почитать тут: https://pypi.org/project/pip/

Рекомендованый способ загрузить свой проект — это использовать twine.

Далее я приведу сокращенный вариант с использованием github на основе моего проекта.

Для начала зарегистрируйте аккаунт по ссылке: https://test.pypi.org/account/register/ Это тестовый стенд, он нам нужен для экспериментов и проверки, чтоб не мусорить в основном репозитарии python пакетов.

Установим необходимые зависимости под пользователем.

python3 -m pip install --user --upgrade setuptools wheel twine

Теперь зайдем в репозиторий с кодом и создадим пакеты для загрузки.

python3 setup.py sdist bdist_wheel --universal

Это создаст папку ./dist с запакованным проектом.

ls dist/
acme_nginx-0.0.8-py2.py3-none-any.whl  acme-nginx-0.0.8.tar.gz

Теперь загрузим это в тестовый pypi.

twine upload --repository-url https://test.pypi.org/legacy/ dist/*

Пакет загружен и можно пойти посмотреть на него по https://test.pypi.org/project/acme-nginx/

Для загрузки в pypi.org, зарегистрируйтесь там и повторите все шаги, только не указывайте --repository-url команде twine upload.

Чтоб не вводить каждый раз своего пользователя при загрузке пакетов, создайте конфигурацию в $HOME/.pypirc наподобие этой

[distutils]
index-servers=
    pypi
    testpypi

[testpypi]
repository: https://test.pypi.org/legacy/
username: your testpypi username
password: your testpypi password

[pypi]
username: your pypi username
password: your pypi password

И указывайте нужный репозиторий:

twine upload --repository testpypi dist/*

Пол материалам: https://packaging.python.org/tutorials/packaging-projects/

comments powered by Disqus