【问题标题】:Clash between Kivy and PyUpdater LoggesKivy 和 PyUpdater 日志之间的冲突
【发布时间】:2021-04-06 22:29:35
【问题描述】:
我正在使用PyUpdater 自动更新我的kivy 应用程序。当我导入pyupdater 的客户端类(在我的应用程序中)时,我的应用程序崩溃了(在终端窗口中出现如此多的警告之后)。
我从不同的来源知道(可能我错了),这是由于pyupdater 和kivy 之间的冲突来获取记录器(pyupdater 尝试获取根记录器)。我该如何解决这个问题?任何帮助都将不胜感激。
注意: 如果我在kivy 之前导入pyupdater,则该应用可以正常工作。但我想在另一个文件中导入pyupdater。
警告的快照附在下面:
【问题讨论】:
标签:
python
kivy
pyinstaller
kivy-language
pyupdater
【解决方案1】:
Kivy 确实(遗憾地)也采用/设置了根记录器,我们希望改变它,但我们必须评估这是否会导致问题。
如果你仍然可以导入 PyUpdater,只要你在 Kivy 之前导入它,那么你可以决定在你的主模块中导入它(在 kivy 之前),即使你不在那里使用它,因为 python 模块是单例(将它们导入到同一个正在运行的程序的另一个位置可以让您访问相同的命名空间,这对应用程序来说是全局的),这将允许您稍后在另一个模块中安全地导入它。
import pyupdater # noqa
import kivy
...
在另一个模块中
import pyupdater
现在应该可以工作了。