Configurando um sistema de compilação para o aplicativo Python

3

Ao tentar resolver esta questão , eu corri no seguinte problema.

Eu tenho um script Python que é instalado em /usr/lib/ . Mas eu preciso colocar este 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 ao escrever aplicativos C ++ antes, nunca criei nenhum tipo de arquivo Makefile for Python (nem sei por onde começar).

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

    
por Nathan Osman 01.08.2010 / 09:12

4 respostas

6

Bem, como eu expliquei na outra pergunta, você não precisa de um sistema de compilação e, nesse caso específico, 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.

Finalmente, se você quiser gerar um pacote debian fora do seu projeto, então você pode facilmente fazer isso usando python-stdeb (usa dh7 , que eu gosto mais) ou python-mkdebian (usa% código%). Existem muitas outras diferenças entre essas ferramentas, mas deixarei que você mesmo as descubra. Apenas observe que ambos exigem o uso de distutils. ( cdbs é parte do pacote python-mkdebian no Ubuntu, eu não usei python-distutils-extra , mas você pode tentar também se quiser)

    
por Umang 01.08.2010 / 16:41
0

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

Ele tem um muito bom Guia do usuário .

    
por thbusch 01.08.2010 / 11:36
0

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

Para um programa em 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 com base no 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 configuração executando sudo setup.py install . Ele deve instalar os arquivos em seus 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.

Uma vez feito isso, você pode olhar as camadas do pacote 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.

    
por jbowtie 02.08.2010 / 01:10
0

Não deixe de conferir:

link Para um bom layout de pacote padrão, incluindo um arquivo setup.py de inicialização

link Para bloquear o seu ambiente de desenvolvimento do resto do seu sistema. Executando algo como

python setup.py desenvolver

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

    
por Rick 20.08.2010 / 19:28