Como Distribuir Sua Aplicação Python Com PyPI - Imasters
Como Distribuir Sua Aplicação Python Com PyPI - Imasters
(/) POWERED
(HTTP://DEVELOPERS.TOTVS.COM/)
BY: (https://www.facebook.com/PortaliMasters) (https://twitter.com/i
Back-End(https://imasters.com.br/back-end)
Mobile(https://imasters.com.br/mobile)
Front End(https://imasters.com.br/front-end)
DevSecOps(https://imasters.com.br/devsecops)
Design & UX(https://imasters.com.br/design-ux)
Data(https://imasters.com.br/data)
APIs e Microsserviços(https://imasters.com.br/apis-microsservicos)
Crypto(https://cryptobusinessreview.com/)
PATROCINADOR:
BACK-END
9 DEZ, 2016
MICHELL STUTTGART
(HTTPS://IMASTERS.COM.BR/PERFIL/MICHELLSTUTTGART)
Tem 12 artigos publicados com 14400
visualizações desde 2016
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.
1 MAI, 2018
Criando dicts a partir de outros dicts (https://imasters.com.br/back-end/criando-dicts-partir-de-outros-dicts)
2 FEV, 2018
Mate e Cinnamon: como reiniciar a configuração dos painéis de menu (https://imasters.com.br/desenvolvimento/mate-e-cinnamon-como-reiniciar-
configuracao-dos-paineis-de-menu)
8 NOV, 2017
Python – Calculando diferença de dias entre duas datas (https://imasters.com.br/back-end/python-calculando-diferenca-de-dias-entre-duas-datas)
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?
https://imasters.com.br/back-end/como-distribuir-sua-aplicacao-python-com-pypi 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 (https://pypi.python.org/pypi), através do comando abaixo:
Não seria interessante usar o mesmo método para distribuir a sua aplicação? Sim? Então, mãos à obra.
Primeiramente, para distribuir seus pacotes usando o PyPI (https://pypi.python.org/pypi), precisamos criar uma conta em ambos os
sites:
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
(https://pypi.python.org/pypi) quando para o PyPI Test (https://testpypi.python.org/pypi).
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 (https://pypi.python.org/pypi).
Abra o arquivo .pypirc em seu editor de texto favorito, e insira as informações abaixo.
https://imasters.com.br/back-end/como-distribuir-sua-aplicacao-python-com-pypi 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=https://pypi.python.org/pypi
8 username=seu_nomedeusuario
9 password=sua_senha
10
[pypitest]
11
repository=https://testpypi.python.org/pypi
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 .
2 ├── codigo_avulso_test_tutorial
3 │ ├── circulo.py
4 │ ├── figura_geometrica.py
5 │ ├── __init__.py
6 │ └── quadrado.py
7 ├── LICENSE
8 ├── README.md
9 ├── setup.cfg
├── setup.py
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 setup.py e setup.cfg. Dentro do arquivo setup.py temos várias informações sobre nossa
aplicação que serão usadas pelo PyPI (https://pypi.python.org/pypi).
https://imasters.com.br/back-end/como-distribuir-sua-aplicacao-python-com-pypi 3/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
3
4 setup(
5 name='codigo-avulso-test-tutorial',
6 version='0.1.1',
7 url='https://github.com/mstuttgart/codigo-avulso-test-tutorial',
8 license='MIT License',
9 author='Michell Stuttgart',
author_email='[email protected]',
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 setup.cfg (caso você o tenha criado).
1 [metadata]
2 description-file = README.md
Esse arquivo irá dizer ao PyPI (https://pypi.python.org/pypi) onde seu arquivo readme está.
Agora iremos estudar os passos para enviar nossa aplicação para PyPI (https://pypi.python.org/pypi), para que ela fique disponível
para ser instalada através do pip.
Primeiramente, vamos registrar nossa aplicação no PyPI Test (https://testpypi.python.org/pypi). 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 running register
2 running egg_info
3 creating codigo_avulso_test_tutorial.egg-info
4 writing codigo_avulso_test_tutorial.egg-info/PKG-INFO
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
(https://testpypi.python.org/pypi).
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 (https://testpypi.python.org/pypi).
https://imasters.com.br/back-end/como-distribuir-sua-aplicacao-python-com-pypi 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
8 warning: sdist: standard file not found: should have one of README, README.rst, README.txt
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/codigo-avulso-test-tutorial-0.1.1.tar.gz to https://testpypi.python.org/pypi
18
Server response (200): OK
19
Parabéns! Com esse ultimo passo, publicamos o nosso pacote Python com sucesso! Agora ele pode ser visualizado na lista de
aplicações (https://pypi.python.org/pypi/codigo-avulso-test-tutorial/0.1.1) do PyPI (https://pypi.python.org/pypi) e ser instalado
usando pip.
Conclusão
É isso, pessoal. Vimos como distribuir nossa aplicação Python, desde a crição na conta no PyPI (https://pypi.python.org/pypi) até o
registro e upload da nossa aplicação. Espero que tenham gostado e caso tenham alguma dúvida, deixem um comentário.
Referências
0 1 2 3 4 5 6 7 8 9 10
https://imasters.com.br/back-end/como-distribuir-sua-aplicacao-python-com-pypi 5/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
ARTIGOS PUBLICADOS POR ESTE AUTOR
Michell Stuttgart
(http://codigoavulso.com.br) (mailto:[email protected])
12 Artigo(s)
SAIBA MAIS
(HTTPS://IMASTERS.COM.BR/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
ASSINAR
https://imasters.com.br/back-end/como-distribuir-sua-aplicacao-python-com-pypi 6/7
26/04/2023, 19:24 Como distribuir sua aplicação Python com PyPI | iMasters
FÓRUM (HTTPS://FORUM.IMASTERS.COM.BR/)
CBR (HTTPS://CRYPTOBUSINESSREVIEW.COM/)
https://imasters.com.br/back-end/como-distribuir-sua-aplicacao-python-com-pypi 7/7