Pular para o conteúdo principal

Python e criação de pacotes para o PyPI ( Python Package Index )

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.

Comentários

Postagens mais visitadas deste blog

Arch Linux Introdução

Antes de falar de ArchLinux, o que é Linux ?

Aparentemente até quem mexe com GNU/Linux ainda não sabe o que é Linux,
o que eu posso resumir é que são dois projetos somados, GNU + Linux, resultando em GNU/Linux.

A inicio Linux é o Kernel, um pacotão de pedaços que permitem a interação do núcleo da sua máquina, com os dispositivos, mouse, teclado, impressora, qualquer outra coisa.

Primeira Postagem - Apresentação

Olá a todos,
faz um tempo que eu não escrevo no blog,
muito menos faço vídeos no canal youtube.com/tonnytg

Hoje estou dando inicio a um projeto para criar um alarme a adicionar o mesmo,
em minha moto.

Logo irei postar documentações, vídeos e ideias sobre o mesmo.

Meu projeto inicial,
irei usar dois Attinny45 e uma antes Transiver e Reciver via XY-FST e XY-MK
Existem diversos projetos utilizando eles, então será bem fácil de concluir o protótipo do mesmo.

Abraço e até o próximo Post...


Arduino ?

O que é um Arduino ?

Ele é um micro-Controlador,  um Chip com repostas e lógicas, ou seja, você é capaz de fazer tudo com ele. Vamos imaginar que o Arduino é uma peça que irá te ajudar a realizar a comunicação entre mundo real e o virtual, quer um exemplo ?

Imagine a seguinte situação, você quer que seu computador saiba que está de dia ( Claridade  do ambiente ), ele não tem olhos para realizar essa observação, mas podemos dar a ele um sensor de claridade, e esse sensor, através do Arduino, iria passar as informações para o seu computador.