Pergunta

Eu escrevi um programa em python para adicionar uma gtk GUI para uma cli programa.Eu queria saber como eu posso criar um instalador usando o distutils.Já que é apenas uma GUI frontend para um aplicativo de linha de comando só funciona em *nix, de qualquer maneira, então eu não estou preocupado com isso de ser de plataforma cruzada.

meu objetivo principal é criar um .o pacote deb para debian/ubuntu blog, mas eu não entendo criar/configurar arquivos.Eu tenho sido principalmente um desenvolvedor web até agora.

editar:Alguém sabe de um projecto que utiliza distutils para que eu pudesse vê-lo em ação e, você sabe, na verdade, tentar construir isso?

Aqui estão alguns links úteis

  • Ubuntu Python Embalagem Guia

    Este Guia é muito útil.Eu não sei como eu perdi isso durante a minha onda inicial de gooling.Ele ainda orienta a embalagem até um existente aplicação em python

  • O Ubuntu MOTU Projeto

    Este é o pacote oficial manutenção do projeto ubuntu.Qualquer pessoa pode participar, e há muitos tutoriais e informações sobre a criação de pacotes, de todos os tipos, que incluem o acima 'python embalagem de guia".

  • "Python distutils para deb?" - Ars Technica Fórum de discussão

    De acordo com esta conversa, você não pode apenas usar distutils.Não seguem o formato de empacotamento da debian (ou algo assim).Eu acho que é por isso que você precisa dh_make como visto no Ubuntu Packaging guide

  • "Um bdist_deb comando para distutils

    Este tem alguns discussão interessante (é também a forma como eu achei o ubuntu guia) sobre a concatenação de um arquivo zip, e um script de shell para criar algum tipo de universal executável (qualquer coisa com python e bash que é).estranho.Deixe-me saber se alguém encontrar mais informações sobre essa prática, pois eu nunca ouvi falar dele.

  • Descrição do deb formato e como distutils ajuste em python lista de discussão

Foi útil?

Solução

Ver o distutils exemplo simples.Isso é basicamente o que é, exceto real scripts de instalação contém, geralmente, um pouco mais de informação.Eu não vi nenhum que são fundamentalmente mais complicado, no entanto.Na essência, é só dar uma lista do que precisa para ser instalado.Às vezes você precisa dar alguns mapeamento dicts, pois a fonte e instalado árvores pode não ser a mesma.

Aqui é a vida real (anónimos) exemplo:

#!/usr/bin/python 

from distutils.core import setup 

setup (name = 'Initech Package 3', 
          description = "Services and libraries ABC, DEF", 
          author = "That Guy, Initech Ltd", 
          author_email = "that.guy@initech.com", 
          version = '1.0.5', 
          package_dir = {'Package3' : 'site-packages/Package3'}, 
          packages = ['Package3', 'Package3.Queries'], 
          data_files = [ 
                       ('/etc/Package3', ['etc/Package3/ExternalResources.conf']) 
          ])

Outras dicas

apt-get install python-stdeb

Python para Debian de código fonte o pacote utilitário de conversão

Este pacote fornece algumas ferramentas para produzir os pacotes Debian a partir de pacotes Python através de uma nova distutils comando, sdist_dsc.Automático, predefinições são fornecidos para os pacotes Debian, mas muitos aspectos do pacote resultante pode ser personalizado através de um arquivo de configuração.

  • pypi-instalar irá consultar o Python Package Index (PyPI) para um pacote download, crie um .deb e, em seguida, instalar o a .deb.
  • py2dsc irá converter um distutils-construído tarball do fonte para a Debian pacote de código-fonte.

A maioria dos programas Python vai usar distutils. Django é um ver http://code.djangoproject.com/svn/django/trunk/setup.py

Você também deve ler a documentação, como é muito abrangente e tem alguns bons exemplos.

Eu encontrei a seguinte tutorial para ser muito útil.É mais curto do que o distutils documentação e explica como a instalação de um típico projeto passo a passo.

distutils realmente não é tão difícil uma vez que você pegar o jeito dele.É realmente apenas uma questão de colocar em algumas meta-informações (nome do programa, autor, versão, etc) e, em seguida, selecionar quais os arquivos que você deseja incluir.Por exemplo, aqui está um exemplo de distutils setup.py módulo de um decentemente complexo biblioteca em python:

Kamaelia setup.py

Note que isto não lidar com quaisquer ficheiros de dados ou outras coisas mais, então, YMMV.

Em outra nota, eu concordo que o distutils documentação é, provavelmente, o python pior documentação.É extremamente inclusive em algumas áreas, mas deixam de lado algumas realmente importantes informações em outros.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top