切换驱动程序后,Kivy 找不到 Window 提供商
Kivy fails to find a Window provider after switching drivers
我是 运行 Ubuntu 16.04,Python 3.5 和 Kivy v1.9.2-dev0
浏览设置时,我注意到我没有使用 NVIDIA 推荐的专有驱动程序,而是使用开源 nouveau。所以我认为最好切换。但是当我这样做时,我的 Kivy 应用程序突然开始失败。这是日志:
[INFO ] [Kivy ] v1.9.2-dev0
[INFO ] [Python ] v3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609]
[INFO ] [Factory ] 193 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [Text ] Provider: sdl2
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [Window ] Provider: sdl2(['window_egl_rpi'] ignored)
[CRITICAL] [Window ] Unable to find any valuable Window provider.
egl_rpi - ImportError: cannot import name 'bcm'
File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "/usr/lib/python3/dist-packages/kivy/core/window/window_egl_rpi.py", line 12, in <module>
from kivy.lib.vidcore_lite import bcm, egl
sdl2 - RuntimeError: b'Could not create GL context: BadValue (integer parameter out of range for operation)'
File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 67, in core_select_lib
cls = cls()
File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 139, in __init__
super(WindowSDL, self).__init__()
File "/usr/lib/python3/dist-packages/kivy/core/window/__init__.py", line 794, in __init__
self.create_window()
File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 262, in create_window
self.fullscreen, resizable, state)
File "kivy/core/window/_window_sdl2.pyx", line 142, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy/core/window/_window_sdl2.c:2462)
File "kivy/core/window/_window_sdl2.pyx", line 56, in kivy.core.window._window_sdl2._WindowSDL2Storage.die (kivy/core/window/_window_sdl2.c:1556)
x11 - ImportError: No module named 'kivy.core.window.window_x11'
File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
[CRITICAL] [App ] Unable to get a Window, abort.
该应用程序与 nouveau 完美配合,那么崩溃的原因是什么?我应该切换回 nouveau 吗?有没有办法让它与 NVIDIA 驱动程序一起工作?
我也在使用官方的 NVIDIA 驱动程序,它在我的机器上运行得非常好。我想你缺少一些库文件。您在安装 Kivy 的先决条件时是否遇到任何错误,例如 Cython、PyGame、SDL2 等?
答案已更新
如果我没记错的话,您之前安装的依赖项与您的新显卡驱动程序不兼容。您将不得不再次安装依赖项,因为有时根据您当前的硬件、驱动程序、操作系统配置等,依赖项的安装和编译会略有不同。
有时重新启动计算机也有帮助,特别是当(无论出于何种原因)旧恶魔仍然 运行 在后台时,即使更新成功。
根据你的回溯错误,某些东西(我不知道 SDL2,PyGame 或其他东西)无法创建 Window 并且 Kivy 没有任何东西可以渲染它的图形.
如果我是你,我会完全卸载 Kivy 的所有全局依赖项,我也会卸载 Kivy 并使用 PyEnv (https://github.com/yyuu/pyenv) to manage the local installation of the dependencies. Please remember PyEnv has it's own dependencies (https://github.com/yyuu/pyenv/wiki/Common-build-problems)。
我是 运行 Ubuntu 16.04,Python 3.5 和 Kivy v1.9.2-dev0
浏览设置时,我注意到我没有使用 NVIDIA 推荐的专有驱动程序,而是使用开源 nouveau。所以我认为最好切换。但是当我这样做时,我的 Kivy 应用程序突然开始失败。这是日志:
[INFO ] [Kivy ] v1.9.2-dev0
[INFO ] [Python ] v3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609]
[INFO ] [Factory ] 193 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [Text ] Provider: sdl2
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [Window ] Provider: sdl2(['window_egl_rpi'] ignored)
[CRITICAL] [Window ] Unable to find any valuable Window provider.
egl_rpi - ImportError: cannot import name 'bcm'
File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "/usr/lib/python3/dist-packages/kivy/core/window/window_egl_rpi.py", line 12, in <module>
from kivy.lib.vidcore_lite import bcm, egl
sdl2 - RuntimeError: b'Could not create GL context: BadValue (integer parameter out of range for operation)'
File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 67, in core_select_lib
cls = cls()
File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 139, in __init__
super(WindowSDL, self).__init__()
File "/usr/lib/python3/dist-packages/kivy/core/window/__init__.py", line 794, in __init__
self.create_window()
File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 262, in create_window
self.fullscreen, resizable, state)
File "kivy/core/window/_window_sdl2.pyx", line 142, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy/core/window/_window_sdl2.c:2462)
File "kivy/core/window/_window_sdl2.pyx", line 56, in kivy.core.window._window_sdl2._WindowSDL2Storage.die (kivy/core/window/_window_sdl2.c:1556)
x11 - ImportError: No module named 'kivy.core.window.window_x11'
File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
[CRITICAL] [App ] Unable to get a Window, abort.
该应用程序与 nouveau 完美配合,那么崩溃的原因是什么?我应该切换回 nouveau 吗?有没有办法让它与 NVIDIA 驱动程序一起工作?
我也在使用官方的 NVIDIA 驱动程序,它在我的机器上运行得非常好。我想你缺少一些库文件。您在安装 Kivy 的先决条件时是否遇到任何错误,例如 Cython、PyGame、SDL2 等?
答案已更新
如果我没记错的话,您之前安装的依赖项与您的新显卡驱动程序不兼容。您将不得不再次安装依赖项,因为有时根据您当前的硬件、驱动程序、操作系统配置等,依赖项的安装和编译会略有不同。
有时重新启动计算机也有帮助,特别是当(无论出于何种原因)旧恶魔仍然 运行 在后台时,即使更新成功。
根据你的回溯错误,某些东西(我不知道 SDL2,PyGame 或其他东西)无法创建 Window 并且 Kivy 没有任何东西可以渲染它的图形.
如果我是你,我会完全卸载 Kivy 的所有全局依赖项,我也会卸载 Kivy 并使用 PyEnv (https://github.com/yyuu/pyenv) to manage the local installation of the dependencies. Please remember PyEnv has it's own dependencies (https://github.com/yyuu/pyenv/wiki/Common-build-problems)。