首先,奇怪的是quickly run
我的应用程序运行良好,我相信我没有对源代码做出任何更改,因为快速调试正在运行(我知道,宣称这不是用户错误是令人讨厌的!)。
当我的应用程序在样板内部初始化时,winpdb 本身崩溃了窗口.py里面Gio.Settings()
。
GLib-GIO-ERROR **: Settings schema 'net.launchpad.cookety-app' is not installed.
我已经检查过文件夹数据/glib-2.0/模式一切都和我创建具有现有模式的项目时一样。
我已经逐步完成了代码/usr/lib/python2.7/dist-packages/gi/overrides/Gio.py,并发现它Settings.__init__()
就是在那里崩溃的。
没有异常,调试器没有暂停,只是直接连接丢失,winpdb 关闭,因此我甚至无法找到导致问题的代码行……非常令人沮丧。请帮忙!
答案1
Winpdb 无法找到用于存储首选项的 glib 设置架构。例如,如果您查看 Quickly 自动生成的 Preferences.py 文件,您会看到对 Gio.Settings("net.launchpad.XXX") 的调用,该调用根据定义的架构检索应用程序本地存储的任何首选项。
这文档glib-compile-schemas 告诉我们在 XDG_DATA_DIRS 目录下与 glib-2.0/schemas/ 匹配的路径中搜索模式。所以,你可以选择。你可以像这样正式安装模式:
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,那么可能就是这样。