26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
Fórum iMasters ([Link]
we are developers Portal E-Commerce Brasil ([Link]
CBR ([Link]
(/) POWERED
(HTTP://[Link]/)
BY: ([Link] ([Link]
Back-End([Link]
Mobile([Link]
Front End([Link]
DevSecOps([Link]
Design & UX([Link]
Data([Link]
APIs e Microsserviços([Link]
Crypto([Link]
PATROCINADOR:
BACK-END
9 DEZ, 2016
Como distribuir sua aplicação Python com PyPI
([Link] ([Link] ([Link]
u=[Link] url=[Link] url=[Link] COMPARTILHE!
sua-aplicacao-python-com-pypi) distribuir-sua-aplicacao-python-com-pypi) sua-aplicacao-python-com-pypi)
MICHELL STUTTGART
(HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
Tem 12 artigos publicados com 14400
visualizações desde 2016
MICHELL STUTTGART (HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
12
Bacharel em Engenharia da Computação pela Universidade Federal de Itajubá. É apaixonado por desenvolvimento de software, tecnologia e ciências,
além de ser entusiasta da filosofia de Software Livre. Desenvolvedor Python e Linux User, também contribui em diversos projetos Open Source
(incluindo projetos próprios) e colaborada nos blogs Código Avulso e PythonClub. Sempre está em busca de novos conhecimentos e de compartilhar
o que aprende.
LEIA MAIS (HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
1 MAI, 2018
Criando dicts a partir de outros dicts ([Link]
2 FEV, 2018
Mate e Cinnamon: como reiniciar a configuração dos painéis de menu ([Link]
configuracao-dos-paineis-de-menu)
8 NOV, 2017
Python – Calculando diferença de dias entre duas datas ([Link]
Imagine a seguinte situação: você passou alguns dias (ou mesmo meses) desenvolvendo uma módulo python, escreveu testes,
implementou funcionalidades e depois de alguns ajustes, chegou a hora de liberar seu software para que outros desenvolvedores
possam utilizá-lo. Qual o melhor modo de distribuí-lo?
[Link] 1/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
Caro leitor, se você costuma programar em Python (seja profissionalmente ou não) provavelmente já instalou outros módulos
usando o PyPI ([Link] através do comando abaixo:
1 pip install nomedomodulo
Não seria interessante usar o mesmo método para distribuir a sua aplicação? Sim? Então, mãos à obra.
Sobre o PyPI – Python Package Index
O site PyPI ([Link] é um repositório de softwares desenvolvidos na linguagem Python. Em outras palavras, ele
garante que seu pacote Python sempre esteja disponível para a instalação. O seu funcionamente é simples, porém algumas
configurações inicias devem ser feitas para que tudo funcione corretamente.
Crie uma conta
Primeiramente, para distribuir seus pacotes usando o PyPI ([Link] precisamos criar uma conta em ambos os
sites:
PyPI Live ([Link]
PyPI Test ([Link]
Recomendo que você utilize o mesmo email e senha para ambos os sites. Posteriormente, isso tornará mais fácil o processo de
configuração.
Configurando o ambiente
O próximo passo é criar um arquivo .pypirc em sua home. Esse arquivo contem informações de autenticação, tanto para o PyPI Live
([Link] quando para o PyPI Test ([Link]
1 touch ~/.pypirc
Apesar de não ser obrigatório a criação desse aquivo, ele facilita muito nosso trabalho, uma vez que você não precisaremos inserir
nosso email e senha toda vez que formos enviar nosso código para o PyPI Live ([Link]
Abra o arquivo .pypirc em seu editor de texto favorito, e insira as informações abaixo.
[Link] 2/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
1 [distutils]
2 index-servers =
3 pypi
4 pypitest
5
6 [pypi]
7 repository=[Link]
8 username=seu_nomedeusuario
9 password=sua_senha
10
[pypitest]
11
repository=[Link]
12
username=seu_nomedeusuario
13
password=sua_senha
14
Em username insira seu nome de usuário e password, insira sua senha. Faça isso tanto para o pypi quanto para o pypitest.
Um observação importante é que, caso a sua senha possua espaço, não a coloque entre aspas. Por exemplo, se a sua senha for
“batuque da viola doida”, coloque exatamente o mesmo texto em password.
1 password=batuque da viola doida
Preparando o seu módulo Python
Todo pacote distribuído pelo PyPI ([Link] precisa ter uma arquivo [Link] em seu diretório raiz. E se seu
projeto também usa um arquivo readme em markdown(normalmente chamado [Link]) você também precisará criar um arquivo
chamado [Link] diretório raiz do módulo.
Como exemplo, iremos utilizar o módulo codigo_avulso_test_tutorial ([Link] que
criei para ser utilizado como exemplo em nossos tutoriais. Assim, temos a seguinte estrutura básica de diretórios:
1 .
2 ├── codigo_avulso_test_tutorial
3 │ ├── [Link]
4 │ ├── figura_geometrica.py
5 │ ├── __init__.py
6 │ └── [Link]
7 ├── LICENSE
8 ├── [Link]
9 ├── [Link]
├── [Link]
10
└── test
11
├── circulo_test.py
12
├── figura_geometrica_test.py
13
├── __init__.py
14
└── quadrado_test.py
15
Aqui, o que nos interessa são os arquivos [Link] e [Link]. Dentro do arquivo [Link] temos várias informações sobre nossa
aplicação que serão usadas pelo PyPI ([Link]
[Link] 3/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
1 # -*- coding: utf-8 -*-
2 from setuptools import setup
3
4 setup(
5 name='codigo-avulso-test-tutorial',
6 version='0.1.1',
7 url='[Link]
8 license='MIT License',
9 author='Michell Stuttgart',
author_email='michellstut@[Link]',
10
keywords='tutorial test unittest codigoavulso',
11
description=u'Tutorial de teste unitário em Python para o blog Código Avulso',
12
packages=['codigo_avulso_test_tutorial'],
13
install_requires=[],
14
)
15
O nome de cada tag é autoexplicativo, então não vou entrar em detalhes. Basta você usar o código acima e substituir com os dados
do seu pacote.
O próximo passo é adicionar o seguinte conteúdo no arquivo [Link] (caso você o tenha criado).
1 [metadata]
2 description-file = [Link]
Esse arquivo irá dizer ao PyPI ([Link] onde seu arquivo readme está.
Publicando sua aplicação Python
Agora iremos estudar os passos para enviar nossa aplicação para PyPI ([Link] para que ela fique disponível
para ser instalada através do pip.
Enviando para PyPI Test
Primeiramente, vamos registrar nossa aplicação no PyPI Test ([Link] Esse passo serve para verificarmos se
está tudo certo com nosso pacote e também validar se já não existe outro módulo com o mesmo nome. Registramos nossa
aplicação com o seguinte comando:
1 python [Link] register -r pypitest
Se tudo ocorrer bem teremos a seguinte saída (Server responde 200):
1 running register
2 running egg_info
3 creating codigo_avulso_test_tutorial.egg-info
4 writing codigo_avulso_test_tutorial.egg-info/PKG-INFO
5 writing top-level names to codigo_avulso_test_tutorial.egg-info/top_level.txt
6 writing dependency_links to codigo_avulso_test_tutorial.egg-info/dependency_links.txt
7 writing manifest file 'codigo_avulso_test_tutorial.egg-info/[Link]'
8 reading manifest file 'codigo_avulso_test_tutorial.egg-info/[Link]'
9 writing manifest file 'codigo_avulso_test_tutorial.egg-info/[Link]'
running check
10
Registering codigo-avulso-test-tutorial to [Link]
11
Server response (200): OK
12
Caso exista outro pacote com o mesmo nome, teríamos de escolher outro nome para o nosso pacote. Agora com nosso pacote
devidamente registrado, executamos o comando abaixo para que o pacote seja enviado para o PyPI Test
([Link]
1 python [Link] sdist upload -r pypitest
Se tudo ocorrer bem (Server responde 200), você verá uma saída semelhante a esta e já poderá ver sua aplicação na lista do PyPI
Test ([Link]
[Link] 4/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
1 running sdist
2 running egg_info
3 writing codigo_avulso_test_tutorial.egg-info/PKG-INFO
4 writing top-level names to codigo_avulso_test_tutorial.egg-info/top_level.txt
5 writing dependency_links to codigo_avulso_test_tutorial.egg-info/dependency_links.txt
6 reading manifest file 'codigo_avulso_test_tutorial.egg-info/[Link]'
7 writing manifest file 'codigo_avulso_test_tutorial.egg-info/[Link]'
8 warning: sdist: standard file not found: should have one of README, [Link], [Link]
9
.
10
.
11
.
12
13
creating dist
14
Creating tar archive
15
removing 'codigo-avulso-test-tutorial-0.1.1' (and everything under it)
16
running upload
17
Submitting dist/[Link] to [Link]
18
Server response (200): OK
19
Enviando para PyPI Live
Agora é pra valer. Executamos o mesmo passos para o PyPI Test ([Link]
1 python [Link] register -r pypi
Tudo ocorrendo bem, enviamos nosso pacote:
1 python [Link] sdist upload -r pypi
Parabéns! Com esse ultimo passo, publicamos o nosso pacote Python com sucesso! Agora ele pode ser visualizado na lista de
aplicações ([Link] do PyPI ([Link] e ser instalado
usando pip.
1 pip install nomedopacote
Ou, para o nosso exemplo:
1 pip install codigo_avulso_test_tutorial
Conclusão
É isso, pessoal. Vimos como distribuir nossa aplicação Python, desde a crição na conta no PyPI ([Link] até o
registro e upload da nossa aplicação. Espero que tenham gostado e caso tenham alguma dúvida, deixem um comentário.
Obrigado pela leitura e até o próximo!
Referências
Documentação oficial ([Link]
How to Host your Python Package on PyPI with GitHub ([Link]
using-github-on-pypi)
How to submit a package to PyPI ([Link]
De 0 a 10, o quanto você recomendaria este artigo para um amigo?
0 1 2 3 4 5 6 7 8 9 10
[Link] 5/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
ARTIGOS PUBLICADOS POR ESTE AUTOR
MICHELL STUTTGART (HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
1 MAI, 2018
Criando dicts a partir de outros dicts ([Link]
MICHELL STUTTGART (HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
2 FEV, 2018
Mate e Cinnamon: como reiniciar a configuração dos painéis de menu ([Link]
configuracao-dos-paineis-de-menu)
MICHELL STUTTGART (HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
8 NOV, 2017
Python – Calculando diferença de dias entre duas datas ([Link]
MICHELL STUTTGART (HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
14 AGO, 2017
Git – Realizando o checkout de Pull Requests localmente ([Link]
MICHELL STUTTGART (HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
26 MAI, 2017
Git – Como mover um subdiretório entre repositórios ([Link]
MICHELL STUTTGART (HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
21 ABR, 2017
Peewee – Um ORM Python minimalista ([Link]
Michell Stuttgart
([Link] ([Link]
12 Artigo(s)
SAIBA MAIS
(HTTPS://[Link]/PERFIL/MICHELLSTUTTGART)
Bacharel em Engenharia da Computação pela Universidade
Federal de Itajubá. É apaixonado por desenvolvimento de
software, tecnologia e ciências, além de ser entusiasta da
filosofia de Software Livre. Desenvolvedor Python e Linux
User, também contribui em diversos projetos Open Source
(incluindo projetos próprios) e colaborada nos blogs Código
Avulso e PythonClub. Sempre está em busca de novos
conhecimentos e de compartilhar o que aprende.
ASSINE NOSSA
Newsletter
Fique em dia com as novidades do iMasters! Assine nossa newsletter e receba
conteúdos especiais curados por nossa equipe
Qual é o seu e-mail?
ASSINAR
SOBRE O IMASTERS (HTTPS://[Link]/P/SOBRE-O-IMASTERS)
[Link] 6/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
POLÍTICA DE PRIVACIDADE (HTTPS://[Link]/P/POLITICA-DE-PRIVACIDADE)
FALE CONOSCO (HTTPS://[Link]/FALE-CONOSCO/)
QUERO SER AUTOR (HTTPS://[Link]/P/QUERO-SER-AUTOR)
FÓRUM (HTTPS://[Link]/)
CBR (HTTPS://[Link]/)
[Link] 7/7