Ошибка при создании пакета.deb с Быстро: setup.py install_egg_info не удалось

Я написал небольшую программу, и теперь я пытаюсь сделать .deb пакет из этого. Когда я бегу quickly --verbose package Я получаю это:

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

Я прочитал вопрос Джоно Бэкона на сайте разработчика Quickly, и у него была точно такая же проблема, как и у меня, но, хотя он объяснил, как это исправить, я не понимаю, что я должен делать. Я новичок в Quickly и Python тоже. Что мне нужно сделать?

2 ответа

Решение

Я решил эту проблему, создав новое приложение с тем же именем в другом каталоге и скопировав несколько файлов из старого каталога приложений в новый каталог приложения:

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

а также

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

После этого пакет генерируется без проблем.

Я думаю, что проблема должна быть в том, что я создал новый диалог, а затем удаляю файлы в этом диалоге, так как он больше не нужен.

Спасибо, что указал мне правильное направление.

Я считаю, что это означает, что вы используете некоторые элементы, которые основаны на gtk2, возможно, pygtk, и некоторые элементы, которые являются gtk3 с самоанализом gobject. Эти вещи не смешиваются. Как только вы используете gtk3 и, следовательно, gobject introspection, вы должны оставить все pygtk и gtk2 позади.

Программы, которые быстро создают, использовали pygtk и, следовательно, gtk2, но я полагаю, что последние быстрые версии генерируют интроспекцию gtk3 и gobject.

Используемые вами библиотеки могут использовать gtk2 или gtk3. В ответе, который вы упомянули, Jono сказал, что, например, PyNotify использует gtk2. По-видимому, он решил, чтобы одна программа использовала исключительно gtk2, а другая - исключительно gtk3 - думаю, именно это он имел в виду, имея отдельные базы кода.

Нужно выбрать один, вероятно, gtk3 и introspection, и выполнить то, что вам нужно, осторожно, используя только те библиотеки, которые были преобразованы для использования gtk3 и gobject introspection.

Другие вопросы по тегам