2016-12-25 64 views
2

我正在運行Ubuntu 16.04,Python 3.5和Kivy v1.9.2-dev0
瀏覽設置時,我注意到我沒有使用專有推薦來自NVIDIA的驅動程序,但是我使用的是開放源代碼的風格。所以我認爲最好切換。但是當我這樣做時,突然間我的Kivy應用程序開始失敗。這是日誌:Kivy在切換驅動程序後無法找到Window提供程序

[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完美結合,所以這次崩潰的原因是什麼?我應該轉回到新風格嗎?有沒有辦法使它與NVIDIA驅動程序一起工作?

+0

很抱歉,對於已發表的評論,這個錯誤是否已修復? – Eddie

+0

@Eddie不幸的是,我的電腦與官方的NVIDIA驅動程序不兼容,我又回到了新風格,所以我無法分辨您的答案是否正確。當未來的讀者會評價你的答案時,我會根據他們的經驗接受它 – Leva7

回答

2

我也使用官方的NVIDIA驅動程序,它在我的機器上工作得很好。你錯過了一些我想的庫文件。安裝了像Cython,PyGame,SDL2等Kivy的先決條件是否有任何錯誤?

回答更新

如果我不是錯了,你以前依賴的安裝不符合您的新顯卡驅動程序兼容。您將不得不再次安裝依賴項,因爲有時依賴項的安裝和編譯會稍有不同,具體取決於您當前的硬件,驅動程序,操作系統配置等。

有時,重新啓動計算機時尤其有助於(無論出於何種原因)即使更新成功,較舊的惡魔仍在後臺運行。根據你的回溯錯誤,某些東西(我不知道SDL2,PyGame或其他東西)無法創建窗口,而Kivy沒有任何東西來渲染它的圖形。

如果我是你,我會完全卸載Kivy的所有全局依賴項,我也會卸載Kivy,並使用PyEnv(https://github.com/yyuu/pyenv)來管理本地依賴項的安裝。請記住PyEnv有它自己的依賴關係(https://github.com/yyuu/pyenv/wiki/Common-build-problems)。

+0

不,一切都應該沒問題。正如我所提到的,Kivy完美地使用了nouveau驅動程序,所以所有的依賴關係都應該到位 – Leva7

+0

重新啓動計算機有所幫助。 – mihai

相關問題