Kivy: 参数错误:参数 3:<class>: 类型不对</class>

创建于 2019-07-20  ·  7评论  ·  资料来源: kivy/kivy

问题
我通过 Miniconda3 测试了 kivy 代码(也在 Anaconda3 中测试,出现相同的问题),
每次第一次按F5,代码正常运行,正常出现kivy界面,如下图:

runfile('C:/Users/38477/.spyder-py3/temp.py', wdir='C:/Users/38477/.spyder-py3')
[INFO   ] [Logger      ] Record log in C:\Users\38477\.kivy\logs\kivy_19-07-20_1.txt
[INFO   ] [Kivy        ] v1.11.1
[INFO   ] [Kivy        ] Installed at "G:\Miniconda3\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "G:\Miniconda3\pythonw.exe"
[INFO   ] [Factory     ] 184 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] GLEW initialization succeeded
[INFO   ] [GL          ] Backend used <glew>
[INFO   ] [GL          ] OpenGL version <b'4.0.0 - Build 10.18.10.4885'>
[INFO   ] [GL          ] OpenGL vendor <b'Intel'>
[INFO   ] [GL          ] OpenGL renderer <b'Intel(R) HD Graphics 4000'>
[INFO   ] [GL          ] OpenGL parsed version: 4, 0
[INFO   ] [GL          ] Shading version <b'4.00 - Build 10.18.10.4885'>
[INFO   ] [GL          ] Texture max size <16384>
[INFO   ] [GL          ] Texture max units <16>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [Base        ] Start application main loop
[INFO   ] [GL          ] NPOT texture support is available
[INFO   ] [WindowSDL   ] exiting mainloop and closing.
[INFO   ] [Base        ] Leaving application in progress...

但是colsing kivy界面后,按F5会报如下错误。
``
runfile('C:/Users/38477/.spyder-py3/temp.py', wdir='C:/Users/38477/.spyder-py3')
[INFO] [Base] 启动应用程序主循环
[ERROR] [Base] 没有创建事件侦听器
[ERROR] [Base] 应用程序将离开
[INFO] [Base] 正在申请中...
[INFO] [Base] 正在申请中...
回溯(最近一次调用最后一次):

文件 ”",第 1 行,在
runfile('C:/Users/38477/.spyder-py3/temp.py', wdir='C:/Users/38477/.spyder-py3')

运行文件中的文件“G:\Miniconda3lib\site-packages\spyder_kernels\customize\spydercustomize.py”,第 827 行
execfile(文件名,命名空间)

文件“G:\Miniconda3lib\site-packages\spyder_kernels\customize\spydercustomize.py”,第 110 行,在 execfile 中
exec(编译(f.read(),文件名,'exec'),命名空间)

文件“C:/Users/38477/.spyder-py3/temp.py”,第 15 行,在
测试应用程序()。运行()

文件“G:\Miniconda3lib\site-packages\kivy\app.py”,第 855 行,运行中
运行触摸应用程序()

文件“G:\Miniconda3lib\site-packages\kivy\base.py”,第 506 行,在 runTouchApp 中
停止触摸应用程序()

文件“G:\Miniconda3lib\site-packages\kivy\base.py”,第 521 行,在 stopTouchApp 中
EventLoop.close()

文件“G:\Miniconda3lib\site-packages\kivy\base.py”,第 172 行,关闭
self.stop()

文件“G:\Miniconda3lib\site-packages\kivy\base.py”,第 184 行,停止
提供者.停止()

文件“G:\Miniconda3lib\site-packages\kivy\input\providers\wm_pen.py”,第111行,停止
SetWindowLong_WndProc_wrapper(self.hwnd, self.old_windProc)

文件“G:\Miniconda3lib\site-packages\kivy\input\providers\wm_common.py”,第 122 行,在 _closure
oldAddr = func(hWnd, GWL_WNDPROC, cast(wndProc, c_void_p).value)

参数错误:参数 3:: 类型不对

Restart the kernel is a feasible method, but this means that I must restart the kernel every time after runing the code. Is is normal?

**Environment**

活动环境:基地
活动环境位置:G:\Miniconda3
外壳等级:1
用户配置文件:C:\Users\38477.condarc
填充的配置文件:
康达版本:4.7.9
conda-build 版本:未安装
蟒蛇版本:3.7.3.final.0
虚拟包:__cuda=9.1
基础环境:G:\Miniconda3(可写)
频道网址: https :
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
包缓存:G:\Miniconda3\pkgs
C:\Users\38477.conda\pkgs
C:\Users\38477AppData\Local\conda\conda\pkgs
envs 目录:G:\Miniconda3\envs
C:\Users\38477.conda\envs
C:\Users\38477AppData\Local\conda\conda\envs
平台:win-64
用户代理:conda/4.7.9 requests/2.21.0 CPython/3.7.3 Windows/10 Windows/10.0.17134
管理员:错误
netrc 文件:无
离线模式:假

here is the test code I got from https://kivy.org/#home

从 kivy.app 导入应用程序
从 kivy.uix.button 导入按钮

类 TestApp(App):
定义构建(自我):
返回按钮(文本='Hello World')

测试应用程序()。运行()
``

最有用的评论

我面临同样的问题。 最后通过在外部终端中执行代码解决了它。
转到工具>首选项>运行>在外部系统终端中执行,然后单击确定。

所有7条评论

F5对 kivy 没有任何作用,所以我不确定你的意思。 你的意思是在spyder中按F5? 我真的无法帮助您使用 spyder,因为我不使用它。

您是否尝试在同一个 python 执行中多次运行 kivy? 通常,如果您想多次运行 kivy,则需要重新启动 python,因为 kivy 旨在作为每次运行时重新启动的应用程序运行。 有一些方法可以让 kivy 自行清理,但这些都没有正式记录。

此问题已自动关闭,因为我们要求原作者提供更多信息的请求没有得到回应。 仅凭当前问题中的信息,我们无法采取行动。 如果您有或找到我们需要的答案,请联系我们,以便我们进一步调查。

我面临同样的问题。 最后通过在外部终端中执行代码解决了它。
转到工具>首选项>运行>在外部系统终端中执行,然后单击确定。

我在尝试使用 Jupyter Notebook 和 Pycharm 运行时遇到了同样的问题......
我设法用 Spyder 打开它。

我在使用 Spyder 时遇到了同样的问题。 解决方案是在运行应用程序之前转到控制台>“重新启动内核”。

我在 Jupiter 笔记本中遇到了同样的问题。 转到内核并重新启动并运行所有。

谢谢,这是一个可行的解决方法,但有点复杂,
是否有选项设置来处理它?

nhamde1998 [email protected]于2020年4月11日周六下午5:25发帖:

我在 Jupiter 笔记本中遇到了同样的问题。 转到内核并重新启动
并运行所有。


您收到此消息是因为您创作了该线程。
直接回复本邮件,在GitHub上查看
https://github.com/kivy/kivy/issues/6428#issuecomment-612376719 ,或
退订
https://github.com/notifications/unsubscribe-auth/AFU3OF7P2JSEEXVGJED6PA3RMAZPVANCNFSM4IFNCNVQ
.

此页面是否有帮助?
0 / 5 - 0 等级