Já imaginou qual seria o equivalente em python ao .jar do java?
Em python temos o arquivo .egg, que em essência é um arquivo compactado (.zip) onde estão contidos os módulos python.
O primeiro passo será criar um pacote com a seguinte estrutura.
/Trabalho/
/MyPack/
/oi/
__init__.py
__main__.py
/MyModules/
__init__.py
uai.py
O que será feito aqui é o seguinte. O arquivo __main__.py será o nosso programa principal. Ele irá usar o modulo MyModules para realizar alguma tarefa.
Comecemos pelo pacote MyModules.
O arquivo __init__.py terá a seguinte informação:
__all__=['uai'] #Lista contendo os módulos em MyModules.
Já o arquivo uai.py terá:
#!/usr/bin/env python
def Ola(nome):
print'Muito prazer %s, bem vindo ao ovo' %str(nome)
Já o arquivo __main__.py terá o seguinte:
#!/usr/bin/env python
from MyModules impotr uai
nome=raw_input("Ola, qual o seu nome?")
uai.Ola(nome)
O arquivo __init__.py do que está no primeiro nível de MyPack será:
#!/usr/bin/env python
__all__=['__main__','MyModules']
Agora em uma pasta assima de MyPack iremos criar um arquivo chamado setup.py com a seguinte informação:
#!/usr/bin/env python
from setuptools import setup
setup(name='oi',
version='1.0',
packages=['MyPack','MyModules'],
)
Agora via terminal, dentro dessa pasta executamos o seguinte comando:
$ python setup.py bdist_egg
Pronto, aparecerá uma pasta chamada dist que irá conter o arquivo .egg
Para executar o arquivo .egg diretamente faremos o seguinte comando:
PYTHONPATH=oi.egg python -c "from MyPack import __main__;"
E ai está. A linha de comando anterior poderá estar em um arquivo . sh, por exemplo o arquivo RodaOvo.sh:
#!/bin/bash
PYTHONPATH=oi.egg python -c "from MyPack import __main__;"
Dá-se a permissão de execução
$chomod +x RodaOvo.sh
Assim bastará digitar
$./RodaOvo.sh
Que o programa dentro do .egg será executado.
Se você criar um pacote .egg para distribuir, a instalação se da pelo comando:
$ easy_install meuarquivo.egg
Os arquivos usado nesse exemplo podem ser baixados
aqui