Tenho dúvidas sobre arquivos de ovo em Python.
Tenho muito código Python organizado por pacote e estou tentando criar arquivos de ovo. Estou seguindo instruções , mas são muito comuns.
De acordo com isso, parece que preciso de um arquivo setup.py.
- Você poderia me dizer o que eu preciso colocar no arquivo setup.py e onde ele deve residir?
- Suponho que seja suficiente criar setup.py e então iniciar "setup.py bdist_egg" para obter o arquivo egg. Você poderia confirmar?
- É possível incluir apenas arquivos .pyc no arquivo egg?
- Tendo o arquivo .egg, como posso simplesmente iniciar o código dele sem descompactar como
java -jar <jar file>
faz?
Respostas:
Você está lendo a documentação errada. Você quer isso: https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode
A criação de setup.py é abordada na documentação do distutils na documentação da biblioteca padrão do Python aqui . A diferença principal (para ovos Python) é que você
import setup
partirsetuptools
, nãodistutils
.Sim. Isso deve estar certo.
Acho que não.
pyc
os arquivos podem ser dependentes da versão e da plataforma. Você pode conseguir abrir o egg (eles deveriam ser apenas arquivos zip) e deletar.py
arquivos que deixam.pyc
arquivos, mas isso não seria recomendado.Não tenho certeza. Isso pode ser “Modo de Desenvolvimento”. Ou você está procurando algum modo “py2exe” ou “py2app”?
fonte
Para o nº 4, a coisa mais próxima de iniciar o java com um arquivo jar para seu aplicativo é um novo recurso no Python 2.6, arquivos zip executáveis e diretórios .
Onde myapp.zip é um zip contendo um
__main__.py
arquivo que é executado como o arquivo de script a ser executado. As dependências do seu pacote também podem ser incluídas no arquivo:Você também pode executar um ovo, mas o encantamento não é tão bom:
Isso coloca o myapp.egg no caminho do Python e usa o argumento -m para executar um módulo. Seu myapp.egg provavelmente será semelhante a:
E o python será executado
__init__.py
(você deve verificar isso__file__=='__main__'
em seu aplicativo para uso na linha de comando).Os arquivos Egg são apenas arquivos zip, então você pode adicionar
__main__.py
ao seu egg com uma ferramenta zip e torná-lo executável em python 2.6 e executá-lo como aopython myapp.egg
invés do encantamento acima onde a variável de ambiente PYTHONPATH é definida.Mais informações sobre arquivos zip executáveis, incluindo como torná-los executáveis diretamente com um shebang, podem ser encontradas no blog de Michael Foord sobre o assunto .
fonte
Acho que você deveria usar rodas python para distribuição em vez de ovo agora.
fonte