我在 Spyder 的 IPython 控制台中为 Anaconda 导航器使用 kivy 包。打开 Spyder 后,如果我使用 runfile(path, wdir=cwd),我的代码将毫无问题地运行。然而,在关闭弹出窗口后,如果我再次尝试运行该文件,我会收到错误消息:
File "C:\Users\Me\Anaconda3\lib\site-
packages\kivy\input\providers\wm_common.py", line 122, in _closure
oldAddr = func(hWnd, GWL_WNDPROC, cast(wndProc, c_void_p).value)
ArgumentError: argument 3: <class 'TypeError'>: wrong type
我是 Anaconda 的新手,我想知道这里出了什么问题。任何帮助将非常感激。
我使用
在管理员 conda 终端中重新安装了 kivyconda install -c conda-forge kivy
我创建了一个只有很少部分的虚拟应用程序来演示这个问题。我在下面包含了这段代码。
from kivy.app import App
from kivy.uix.widget import Widget
class FakeTool(Widget):
pass
class FakeApp(App):
def build(self):
return FakeTool()
if __name__ == '__main__':
FakeApp().run()
最佳答案
有类似的问题,在这篇文章中找到了解决方案:
https://stackoverflow.com/a/55057636/9752709
在再次启动您的应用之前使用 reset() 函数。
if __name__ == '__main__':
FakeApp().run()
reset()
FakeApp().run()
...
关于python - ArgumentError 仅在第一次运行后发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549427/