Publicando bibliotecas open source no PyPI

Wagner Macedo

25 de maio de 2019

pip

$ pip install requests

pip
gerenciador de pacotes do Python
install
ação solicitada ao pip
requests
nome do pacote escolhido

O que é um pacote Python?

É um conjunto de códigos escritos em Python com um propósito bem ou mal definido.
É um conjunto de códigos escritos em Python com um propósito bem ou mal definido.

📦 O que vem em um pacote?

Códigos Python

  • Módulos
  • Funções
  • Classes
  • Métodos

Recursos externos

  • 🖼️ Imagens
  • 🎞️ Vídeos
  • 🔖 HTML
  • 📑 XML
  • ❇️ Outros

Pacote ou Pacote

Organiza o código

Um pacote pode ser uma pasta com módulos Python.

❤ Software instalável

Ou pode ser um conjunto de código Python para ser distribuído e instalado.

PyPI

Python Package Index (PyPI)

PyPI Site

https://pypi.org

setup.py

Vamos criar um projeto

O pacote Python usado aqui é um Bot do Telegram que envia gifs aleatórios.

Organização do projeto

giphy-random-bot/
|
├── giphybot/
│   ├── bot.py
│   ├── giphy.py
│   └── __main__.py
|
├── README.md
└── setup.py

Dependências

$ pip freeze

Alternativas

Há alternativas melhores para gerenciar as dependências de um projeto.


Eu uso e recomendo pipenv 😄

Descrevendo seu projeto

Publicando seu pacote

Registrando-se no PyPI

https://pypi.org/account/register/

Testando a publicação

https://test.pypi.org/

Publicando no PyPI 😌

Passo 1: instalar o twine

$ pip install twine

Passo 2: empacotar o seu projeto

$ python setup.py sdist bdist_wheel

Passo 3: checar os pacotes (opcional)

$ twine check dist/*

Passo 4: upload para o Test PyPI (opcional)

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

Passo 5: upload para o PyPI 🎉

$ twine upload dist/*

Obrigado

Mais informações

  1. https://realpython.com/pypi-publish-python-package/
  2. https://hackernoon.com/pip-install-abra-cadabra-or-python-packages-for-beginners-33a989834975

Slide disponível

http://prof.wagnermacedo.com/palestra-publicar-pypi/