Во-первых, как ни странно, 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 закрывается, таким образом, мне безумно даже доходить до строки кода, которая создает проблему ... больше всего расстраивает. Пожалуйста, помогите!
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.