5 Загрузка в PyPI

После того, как ваш setup.py полностью функционален (см Введение ), очень легко загрузить пакет PyPI .

Установите файл .pypirc

В этом файле хранятся логины и пароли для аутентификации ваших учетных записей. Обычно он хранится в вашем домашнем каталоге.

 # .pypirc file

[distutils]
index-servers =
  pypi
  pypitest

[pypi]
repository=https://pypi.python.org/pypi
username=your_username
password=your_password

[pypitest]
repository=https://testpypi.python.org/pypi
username=your_username
password=your_password

 

Это безопаснее использовать twine для загрузки пакетов, поэтому убедитесь , что установлено.

 $ pip install twine

 

Зарегистрируйтесь и загрузите в testpypi (необязательно)

Примечание: PyPI не допускает перезапись загруженных пакетов , поэтому целесообразно сначала проверить развертывание на выделенном тестовом сервере, например testpypi. Этот вариант будет обсуждаться. Рассмотрим схему управления версиями для вашего пакета до загрузки , таких как календарь версий или семантического версий .

Либо войти или создать новую учетную запись на testpypi . Регистрация требуется только в первый раз, хотя регистрация более одного раза не наносит вреда.

 $ python setup.py register -r pypitest

 

Находясь в корневом каталоге вашего пакета:

 $ twine upload dist/* -r pypitest

 

Теперь ваш пакет должен быть доступен через вашу учетную запись.

тестирование

Создайте тестовую виртуальную среду. Попробуйте pip install пакет с любого testpypi или PyPI.

 # Using virtualenv
$ mkdir testenv
$ cd testenv
$ virtualenv .virtualenv
...
$ source .virtualenv/bin/activate
# Test from testpypi
(.virtualenv)  pip install --verbose --extra-index-url https://testpypi.python.org/pypi package_name
...
# Or test from PyPI
(.virtualenv) $ pip install package_name
...

(.virtualenv) $ python
Python 3.5.1 (default, Jan 27 2016, 19:16:39)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import package_name
>>> package_name.foo()
100

 

В случае успеха ваш пакет будет наименее импортируемым. Вы также можете попробовать протестировать свой API перед окончательной загрузкой в ​​PyPI. Если вы провалили упаковку во время тестирования, не беспокойтесь. Вы все еще можете это исправить, повторно загрузить в testpypi и протестировать снова.

Зарегистрируйтесь и загрузите в PyPI

Убедитесь в том , twine установлен:

 $ pip install twine

 

Либо войти или создать новую учетную запись на PyPI .

 $ python setup.py register -r pypi
$ twine upload dist/*

 

Это оно! Ваш пакет теперь живут .

Если вы обнаружите ошибку, просто загрузите новую версию вашего пакета.

Документация

Не забудьте включить хотя бы какую-то документацию для вашего пакета. PyPi принимает в качестве языка форматирования по умолчанию в ReStructuredText .

Прочти меня

Если пакет не имеет большую документации, включает в себя то , что может помочь другим пользователям в README.rst файла. Когда файл готов, нужен еще один, чтобы сказать PyPi, чтобы он показывался.

Создать setup.cfg файл и поместить эти две строки в нем:

 [metadata]
description-file = README.rst

 

Обратите внимание , что если вы попытаетесь поставить Markdown файл в пакет, PyPi будет читать его как чистый текстовый файл без какого - либо форматирования.

лицензирование

Это часто больше , чем могут поместить LICENSE.txt файл в пакете с одним из лицензий OpenSource , чтобы сообщить пользователям , если они могут использовать ваш пакет, например , в коммерческих проектах или если ваш код может использоваться с их лицензией.

В более понятным способом некоторые лицензии объясняются на TL; DR .