Kivy 没有返回错误信息就停止了

Kivy stopped without returning error message

您好,我有一个非常复杂的 kivy 应用程序。我正在做一些事情,我启动了应用程序,但是当我试图保存数据时,我的应用程序突然停止,没有任何错误消息:Process finished with exit code 1

反思后,我发现我在迭代的dict上删除了一个键!

所以我应该看到 RuntimeError: dictionary changed size during iteration 但什么也没出现!为什么以及如何防止这种情况?

(调试可能需要很长时间,我无法想象没有错误信息!)。

这是引发所需错误的代码示例:

d = {"a":"e","b":"c"}
for k in d:
    del d[k]

由于你没有提供任何代码,我无法给你一个具体的答案,但是:

使用

等方法时经常会出现此错误

pop()

它发生了,因为您删除了一个项目,而您仍在遍历字典。如果 python 现在尝试访问这个项目,它不能并引发你提到的错误。

这很容易通过迭代字典的副本并在这样做时更改原始值来解决。

这可以这样完成:

for i in original_dict.copy():

编辑 1:要强制 python 显示错误,您可以这样做:

try:

    # your code

except Exception as e:

    raise e

检查这个答案

基本上,如果您的 kivy 应用程序不再显示信息或错误消息,只需尝试删除您的配置文件:

~/.kivy/config.ini