Criando um Python Egg
Agora que sabemos o que são eggs e como instalá-los, vou explicar como criamos um egg =)
Cenário:
Vamos tomar um exemplo prático para ilustrar a criação desse egg. Eu tenho uma lib chamada uweather que nada mais é que um parser que gera dados sobre previsão do tempo do site weather.com. E ele está na seguinte estrutura de arquivos:
README
uweather
examples
setup.py
Onde README é o arquivo de leitura, uweather onde ficam os arquivos da lib, examples onde ficam os exemplos(dããã) e setup.py…. hmmmm setup.py?
Criando o egg:
o arquivo setup.py é justamente o responsável pelo empacotamento e meta-informações da sua lib, vamos ver a estrutura básica desse arquivo:
setup( name ='nome da lib', version='0.1', description='descricao da sua lib', author='seu nome', author_email='seu@email.com', url='http://seu.site/lib', packages=['nome_do_pacote']) long_description="""\ descricao completa sobre sua lib """, classifiers=[ "lista de classificadores da sua lib", ], keywords='palavras chave separadas por espaço', license='tipo da licensa ex: GPL', install_requires=[ 'setuptools', ], )A lista de classificadores pode ser encontrada aqui.
Esta é a estrutura do setup.py, ela contém meta-informações como nome, versão, informações do autor, classificadores, palavras chave, dependências e outras informações que serão utilizadas quando alguém fizer uma busca pelo easy_install ou pip.
Agora para criar o egg, basta executar o seguinte comando
python setup.py bdist_eggEle irá criar o pacote egg em uma pasta chamada ‘dist’ no formato:
nome_do_pacote-versao-versao_pythonalgo como:
nome_do_pacote-0.1-py2.6(supondo que a versão do python instalada é a 2.6)
Se você descompactar o egg, vai ver que o conteúdo será o da pasta da lib, no caso ‘uweather’ mais uma nova pasta chamada ‘EGG_INFO’ que contém as meta-informações de sua lib.
Também serão incluídos os arquivos .pyc, que são os arquivos .py compilados, os binários.
Com isso, seu arquivo egg agora pode ser distrubuído =)
Distribuindo o seu egg:
Você pode distribuir seu pacote do jeito que bem entender, mas é recomendável utilizar o PyPi, que é o repositório oficial de pacotes python.
Para poder fazer um upload do seu pacote no PyPi, é necessaria a criação de uma conta no site e configurar o arquivo .pypirc no seu diretório HOME.
O arquivo .pypirc segue o seguinte padrão:
[pypirc] servers = pypi [server-login] username:seu_username password:seu_passwordApós feito, é possivel gerar o egg e fazer upload do mesmo pelo comando:
python setup.py bdist_egg upload --identity="Seu Nome" --sign --quietPronto! Agora você tem um pacote egg gerado e indexado no repositório oficial de pacotes python =)
Republicado de Tiveron
Comentários