Публикация пакета

Разработка пакетов на Python

James Fulton

Climate informatics researcher

PyPI

Python Package Index

  • pip устанавливает пакеты отсюда
  • Загрузить пакет может любой
  • Публикуйте пакет, как только он может быть полезен
1 https://pypi.org/
Разработка пакетов на Python

Дистрибутивы

  • Дистрибутивный пакет — упакованная версия пакета, готовая к установке.
  • Исходный дистрибутив — дистрибутивный пакет, содержащий преимущественно исходный код.
  • Wheel-дистрибутив — обработанный дистрибутивный пакет для ускоренной установки.
Разработка пакетов на Python

Сборка дистрибутивов

python setup.py sdist bdist_wheel

  • sdist = исходный дистрибутив
  • bdist_wheel = wheel-дистрибутив
mysklearn/
|-- mysklearn
|-- setup.py
|-- requirements.txt
|-- LICENSE
|-- README.md

|-- dist <---
| |-- mysklearn-0.1.0-py3-none-any.whl
| |-- mysklearn-0.1.0.tar.gz
|-- build |-- mysklearn.egg-info
Разработка пакетов на Python

Публикация пакета

Загрузите дистрибутивы на PyPI

twine upload dist/*

Загрузите дистрибутивы на TestPyPI

twine upload -r testpypi dist/*
mysklearn/
|-- mysklearn
|-- setup.py
|-- requirements.txt
|-- LICENSE
|-- README.md
|-- dist
|   |-- mysklearn-0.1.0-py3-none-any.whl
|   |-- mysklearn-0.1.0.tar.gz
|-- build
|-- mysklearn.egg-info
Разработка пакетов на Python

Как другие могут установить ваш пакет

Установка пакета из PyPI

pip install mysklearn

Установка пакета из TestPyPI

pip install --index-url         https://test.pypi.org/simple 
            --extra-index-url   https://pypi.org/simple
            mysklearn
Разработка пакетов на Python

Давайте потренируемся!

Разработка пакетов на Python

Preparing Video For Download...