Иногда вы сделали какой-то публичный проект на 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/