Erro ao criar rapidamente um pacote .deb: setup.py install_egg_info

1

Eu escrevi um pequeno programa e agora estou tentando tirar um pacote .deb . Quando eu corro quickly --verbose package eu recebo isso:

quickly --verbose package 
/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed
  import gobject._gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: specified class size for type 'PyGtkGenericCellRenderer' is smaller than the parent type's 'GtkCellRenderer' class size
  from gtk import _gtk
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_type_get_qdata: assertion 'node != NULL' failed
  from gtk import _gtk
setup.py install_egg_info failed
An error has occurred when creating debian packaging
ERROR: can't create or update ubuntu package
ERROR: package command failed
Aborting

Eu li a pergunta de Jono Bacon no site do Quickly Developer e ele tinha exatamente o mesmo problema que eu , mas mesmo que ele tenha explicado como consertar, não entendo o que devo fazer. Eu sou novo no Quickly e no Python também. O que eu preciso fazer?

    
por Majster-pl 02.08.2012 / 22:33

2 respostas

1

Eu resolvi isso criando um novo aplicativo com o mesmo nome em um diretório diferente e copiando alguns arquivos do antigo diretório do aplicativo para o novo diretório do aplicativo:

/old_aap_name/data/ui/* to /new_aap_name/data/ui/*

e também

/old_aap_name/old_app_name/*.py to /new_aap_name/new_app_name/*.py

Após este pacote ser gerado sem problemas.

Eu acho que o problema deve ser porque eu criei um novo diálogo e depois eu apaguei os arquivos para este diálogo, já que não era mais necessário.

Obrigado por me apontar para a direção certa.

    
por Majster-pl 03.08.2012 / 22:47
2

Eu acredito que isso significa que você está usando alguns elementos que são baseados em gtk2, talvez pygtk, e alguns elementos que são gtk3 com introspecção de objetos. Essas coisas não se misturam. Depois de usar o gtk3 e, portanto, a introspecção do gobject, você deve deixar o pygtk e o gtk2 para trás.

Os programas que produzem rapidamente usaram o pygtk e, portanto, o gtk2, mas acredito que versões recentes e rápidas geram a introspecção gtk3 e gobject.

As bibliotecas que você usa podem usar gtk2 ou gtk3. Na resposta que você mencionou, Jono disse que o PyNotify usa o gtk2, por exemplo. Ele aparentemente decidiu que um programa usasse exclusivamente o gtk2 e outro programa usasse o gtk3 exclusivamente - eu acho que é isso que ele quis dizer com bases de código separadas.

A coisa a fazer é escolher um, provavelmente gtk3 e introspecção, e realizar o que você precisa fazer, tendo o cuidado de usar apenas as bibliotecas que foram convertidas para usar a introspecção gtk3 e gobject também.

    
por John S Gruber 03.08.2012 / 00:45