Como distribuir aplicações GTK em python?

3

Isto está em correlação com a pergunta anterior que fiz aqui . Meu objetivo é criar e empacotar um aplicativo para facilitar a instalação no Ubuntu e em outras distribuições Debian. Eu entendo que a melhor maneira de fazer isso é criando o arquivo .deb com o qual os usuários podem facilmente instalar meu aplicativo em seu sistema.

No entanto, eu também gostaria de ter certeza de que meu aplicativo está disponível em vários idiomas. É por isso que eu levantei a questão antes da qual você pode ler aqui . Nas respostas que foram fornecidas, me pediram para usar disutils para minha embalagem. No entanto, sinto falta da foto maior aqui.

Por que é necessário incluir um arquivo setup.py quando distribuo meu aplicativo no formato .deb?

Meu objetivo é garantir que os usuários não precisem executar python setup.py para instalar meu aplicativo, mas apenas clicar no arquivo .deb. Eu já sei como criar um arquivo deb a partir do excelente tutorial disponível aqui . Ele mostra claramente como editar regras, changelog e tudo o que é necessário para criar um arquivo deb limpo.

Você pode ver o código-fonte do aplicativo e a estrutura de pastas no Github se isso ajudar você a entender melhor minha situação.

Por favor, note que dei uma olhada na documentação oficial do python encontrada aqui . Mas eu espero que eu obtenha uma resposta que ajudaria até mesmo um homem coxo a entender, uma vez que meu conhecimento é muito pobre a esse respeito.

    
por nik90 30.05.2012 / 17:55

2 respostas

4

Na verdade, você não precisa usar um sistema de compilação para empacotar seu aplicativo.

No entanto, não usar um sistema de compilação significa que você terá que escrever todas as funcionalidades que um sistema de compilação fornece 'gratuitamente' do zero. Não só isso será mais trabalho para você, mas você estará por conta própria. Ou seja, é muito melhor confiar em ferramentas comprovadas que são bem apoiadas por uma comunidade ativa do que iniciar e manter scripts de construção e instalação, a menos que você saiba muito bem o que está fazendo e deseje evitar usar um sistema de construção. / p>

Um sistema de compilação também moverá grande parte da lógica para fazer a compilação e a instalação no próprio sistema, e não na embalagem. Isso resulta em um arquivo debian/rules mais limpo e mais simples, que será muito mais fácil de manter.

Agora, para o seu aplicativo Python, não solicitamos o uso de um sistema de compilação em sua outra pergunta, mas o recomendamos. E isso foi distutils / distutils-extra, como são os mais comuns e com melhor suporte para Python. Há também outros por aí, como o autotools, mas geralmente são mais complexos para serem configurados para o software Python.

Note que não é um ou outro. É daí que a confusão pode vir. Um sistema de construção e embalagem são complementares. A embalagem faz uso do sistema de compilação para criar o pacote. Então não é isso adicionando um e-mail setup.py , você forçará seus usuários a usá-lo. Pelo contrário, você tornará mais fácil criar um pacote .deb fora do seu aplicativo, que os usuários podem instalar apenas clicando nele.

Então, aqui estão os fatos, você não precisa para usar um sistema de compilação, mas irá ajudá-lo muito na criação e manutenção do seu pacote. Sua escolha:)

    
por David Planella 30.05.2012 / 19:17
1

Deseja apenas tornar sua aplicação disponível como um pacote .deb? o que acontece com as pessoas que executam outras distribuições Linux (Fedora, Gentoo) ou até mesmo o Windows?

A filosofia de empacotamento do Debian permite empacotar e distribuir software em .debs, ao mesmo tempo em que mantém uma fonte "pura" que pode ser usada com outros métodos de distribuição (até pessoas baixando um tar.gz e fazendo python setup.py . As ferramentas de empacotamento do Debian assumem (e funcionam melhor com) uma árvore de código-fonte que adere às formas padrão de construção, seja ./configure; make; make install , python setup.py , perl Makefile.PL; make install ou não.

Para conseguir isso, as ferramentas de empacotamento do Debian sabem muito sobre (e trabalham em conjunto com) a construção de estruturas de outras linguagens. E se você usá-los, você recebe um monte de coisas de graça. Um exemplo é o material i18n que você mencionou na sua pergunta anterior; Se você fizer do jeito Python / setup.py, seu pacote Debian irá pegar nele quase automaticamente. Se você tem uma fonte que usa ./configure e adere aos padrões GNU, o empacotamento é muito fácil.

Pessoalmente, acho que o objetivo final é permitir que você use uma estrutura / metodologia de construção existente para ajudar seu software a fornecer recursos de instalação desejados, sem prendê-lo a um modo particular de empacotar seus binários. Lembre-se de que, no mundo do Linux, há muitas opções e as pessoas apreciarão seu aplicativo para apoiar essa opção, aderindo às formas padrão de criação.

    
por roadmr 30.05.2012 / 19:08