Header AD

Compartilhando módulos com PyPI

Fala moçada, tudo bom ?
Neste artigo simples o objetivo é ensinar como criar um Pacote para que você possa compartilhar seus módulos em Python com a galera, uma vez que Compartilhar é poder.

Eu vou me basear no Livro Use a Cabeça Python que é um livro sensacional, que não tem, recomendo comprar.





Primeiramente vamos entender o que poderia me levar a necessidade de se criar um pacote e ter o trabalho de enviar ele para a comunidade.

A necessidade é a mais obvia, ganho de tempo, versionamento e facilidade para exportação e importação do seu módulo.

Imagina que você cria uma função em um arquivo teste.py e toda hora tem que trazer esse código de um lugar para outro. Você tem que deixar dentro de uma pasta, colocar o PATH etc, mas se você simplesmente criar um VirtualEnv e digitar pip Install Modulo, você já terá seu módulo instalado s2


Sendo assim, vamos focar em ganhar tempo,
primeiramente vamos criar um código simples porém que faça algo :


# -*- encoding: utf-8 -*-
class Modulo():
def Imprime(self, texto):
print ("Esse só imprime %s" % texto )

def Leitura(texto):
print ("Esse só lê algo, sqn")

if __name__ == '__main__':
# Cria um objeto com o Módulo criado a cima
# Mas não seria legal ter o código do Módulo já embutindo em um pacote ?
Objeto = Modulo()
Objeto.Imprime("Hei maçã")


Agora imagina todo o código que define essa classe oculta, em um lugar onde poderíamos importar tudo de forma rápida e prática.

#pip Install meu-modulo

Mas como fazer essa mágica ?
basta criar um arquivo, setup.py
depois criar um catalogo com algumas informações e instalar ele na sua máquina,
esse processo vai gerar os pacotes necessários permitindo exportar esse módulo para outro lugar =D


Fácil assim, basta pegar esse pacote e com um "Python Install setup.py" você poderia instalar ele off-line. Porém, hoje em dia falamos de repositório, e não mais pacotes alones....

Vamos então agora para a parte 2, que será preparar o pacote para ser enviado ao PyPI

Primeiro vamos criar um catalogo de informações,
na mesma pasta crie um arquivo chamado : setup.py

Neste arquivo vamos manter algumas informações,
como descrito abaixo :

from distutils.core import setup

setup (
name = 'tgteste',
version = '1.0.0',
py_modules = ['tgteste'],
author = 'tonnytg',
author_email = 'tonnytg@gmail.com',
description = 'Uma demonstração de nada',
)


Perceba que na primeira linha importamos um módulo responsável por gerenciar as informações,
e que irá permitir a interação com os comandos de instalação e criação dos arquivos.

Bom a partir de agora temos dois arquivos,
nosso módulo em um arquivo, e nosso catalogo de informações no setup.py


Vamos convocar um comando que irá fazer a mágica acontecer :

# python setup.py sdist



O comando acima, irá criar um arquivo com a versão informada dentro do setup.py,
esse arquivo irá permitir a intalação OFFLINE, mas não é isso que queremos no momento.

Vamos pegar esse pacote e enviar para um repositório,
crie uma conta no site : https://pypi.org

Com login e senha criado, poderemos passar para o processo de envio,
com o binário Twine conforme a foto abaixo :

# twine upload dist/PACOTE-CRIADO

Vai pedir login e senha,
caso não queira ficar digitando, pode criar um arquivo na sua Home ~/.pypirc

[pypi]
username = tonnytg
password = senha

A imagem abaixo, ele não pediu senha...



Pronto, mágica aconteceu,
agora é só esperar que o seu pacote estará liberado para instalar pip Install modulo ;)


Espero que tenha tirados as dúvidas,
qualquer coisa deixa um salve no comentário.

Postar um comentário

Post a Comment (0)

Postagem Anterior Próxima Postagem

Follow

Header AD

Last Video

Header AD