Странно быстро работает, но отладчик падает без исключения

Во-первых, как ни странно, quickly run в моем приложении работает нормально, и я считаю, что я не внес никаких изменений в исходный код, поскольку работала быстрая отладка (объявляя, что это не ошибка пользователя, неприятна, я знаю!).

Сам winpdb падает, пока мое приложение инициализируется внутри шаблона Window.py внутри Gio.Settings().

GLib-GIO-ERROR **: Settings schema 'net.launchpad.cookety-app' is not installed.

Я проверил папку data / glib-2.0 / schemas и все так, как было, когда я создавал проект с присутствующими схемами.

Я прошелся по коду прямо в /usr/lib/python2.7/dist-packages/gi/overrides/Gio.py и обнаружил, что Settings.__init__() - это то место, где он падает.

Никаких исключений, никаких приостановок отладчика, просто прямое соединение потеряно, и winpdb закрывается, таким образом, мне безумно даже доходить до строки кода, которая создает проблему ... больше всего расстраивает. Пожалуйста, помогите!

0
задан 26 June 2012 в 17:14

1 ответ

Winpdb не может найти схему настроек glib, которая используется для хранения настроек. Например, если вы посмотрите в файле Preferences.py, который быстро генерируется автоматически, вы увидите вызов Gio.Settings ("net.launchpad.XXX"), который извлекает любые локально сохраненные настройки для вашего приложения на основе определенная схема.

Документация для glib-compile-schemas говорит нам, что схемы ищутся в путях, соответствующих glib-2.0 / schemas / в каталогах в XDG_DATA_DIRS. Итак, у вас есть выбор. Вы можете либо формально установить схему следующим образом:

sudo ln -s $PWD/data/glib-2.0/schemas/net.launchpad.XXX /usr/share/glib-2.0/schemas/
sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Или, намного проще, вы можете установить переменную во время выполнения:

XDG_DATA_DIRS=$XDG_DATA_DIRS:data quickly debug

По совпадению, тот же совет относится к запуск вашего приложения вне Quickly, например,

XDG_DATA_DIRS=$XDG_DATA_DIRS:data python bin/XXX

Обратите внимание, что приведенные выше команды предполагают, что вы находитесь в корневом каталоге вашего проекта, как вы, вероятно, используете Quickly.

0
ответ дан 26 June 2012 в 17:14

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

Похожие вопросы: