it-swarm-pt.tech

Configurando um sistema de compilação para Python app

Ao tentar resolver o problema this , eu me deparei com o seguinte problema.

Eu tenho um script Pythonque é instalado em /usr/lib/. Mas eu preciso colocar esse script em um sistema de compilação para que eu possa trabalhar com o meu pacote.

Qualquer ajuda seria apreciada. Embora eu tenha trabalhado um pouco com Makefiles quando escrevi aplicações C++ antes, nunca criei nenhum tipo de Makefile para arquivos Python (nem sei por onde começar).

Como eu faria para configurar um sistema de criação para meu aplicativo?

3
Nathan Osman

Bem, como eu expliquei sobre a outra questão, você não precisa de um sistema de compilação e, nesse caso particular, pode ser melhor sem um.

No entanto, o mais padrão é distutils . Basta fornecer os metadados (ou seja, nome, descrição etc.) e uma lista de pacotes (python), módulos e scripts (todos eles são opcionais) e pronto.

Por fim, se você deseja gerar um pacote debian a partir do seu projeto, pode fazer isso facilmente usando python-stdeb (usa dh7, que eu mais gosto) ou python-mkdebian (usa cdbs). Existem muito mais diferenças entre essas ferramentas, mas deixarei que você mesmo as descubra. Apenas note que ambos exigem o uso de distutils. (python-mkdebian faz parte do pacote python-distutils-extra no Ubuntu, eu não usei muito -extra, mas você pode tentar isso também se quiser)

6
Umang

Scons é um sistema de compilação que usa Python como é linguagem (eu geralmente prefiro makefiles para qualquer projeto), eu acho que deveria ser capaz do que você quer fazer.

Tem um muito bom Guia do Usuário .

0
thbusch

Umang tem a resposta certa, embora talvez não em tantos detalhes quanto você possa parecer como um iniciante completo.

Para um programa Python, você precisa começar criando um arquivo setup.py. A maior parte do arquivo será uma chamada para distutils.core.setup - isso é discutido em detalhes em parte 2 da documentação do distutils .

Todos os outros sistemas de empacotamento para Python (como py2exe, setuptools ou Distribute) são criados sobre o pacote distutils, geralmente estendendo setup() de alguma forma (com parâmetros ou comandos adicionais).

Antes de converter isso em um pacote Ubuntu, você pode testar o script de instalação executando Sudo setup.py install. Ele deve instalar os arquivos nos locais esperados; se isso não acontecer, talvez seja necessário verificar sua configuração. Em particular, as seções 2.5 (scripts) e 2.6 (dados do pacote) da documentação distutils provavelmente se aplicam à sua situação.

Feito isso, você pode examinar as camadas da embalagem do Ubuntu de acordo com o Guia de Empacotamento do Ubuntu para Python . As ferramentas python-stdeb e python-mkdebian sugeridas pelo Umang simplificam a geração dos vários arquivos necessários para o empacotamento do Ubuntu.

0
jbowtie

Certifique-se de verificar:

http://pypi.python.org/pypi/modern-package-template/1. Para um bom layout de pacote padrão incluindo um arquivo setup.py inicial

http://pypi.python.org/pypi/virtualenv Para bloquear o seu ambiente de desenvolvimento do resto do seu sistema. Correndo algo como

python setup.py desenvolver

Irá construir/configurar o seu comando em seu virtualenv para que você possa testá-lo.

0
Rick