![](/img/trans.png)
[英]How to I get Kivy 1.9.1 or 1.9.2 to use SDL2 instead of pygame on OSX 10.12.2?
[英]Run kivy 1.9.1 with SDL2 on centos 7
我試圖在centos 7上使用SDL2進行kivy工作,但是當我運行main.py時,我收到以下消息:
[INFO ] [Logger ] Record log in /home/etienne/.kivy/logs/kivy_16-01-14_51.txt
[INFO ] [Kivy ] v1.9.1
[INFO ] [Python ] v2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
[INFO ] [Factory ] 179 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif, img_pil (img_pygame, img_ffpyplayer ignored)
[CRITICAL] [Window ] Unable to find any valuable Window provider at all!
egl_rpi - ImportError: cannot import name bcm
File "/home/etienne/Demo/Test/test_virtualenv/lib/python2.7/site-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "/home/etienne/Demo/Test/test_virtualenv/lib/python2.7/site-packages/kivy/core/window/window_egl_rpi.py", line 12, in <module>
from kivy.lib.vidcore_lite import bcm, egl
pygame - ImportError: No module named pygame
File "/home/etienne/Demo/Test/test_virtualenv/lib/python2.7/site-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "/home/etienne/Demo/Test/test_virtualenv/lib/python2.7/site-packages/kivy/core/window/window_pygame.py", line 8, in <module>
import pygame
x11 - ImportError: No module named window_x11
File "/home/etienne/Demo/Test/test_virtualenv/lib/python2.7/site-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
[INFO ] [Text ] Provider: pil(['text_pygame'] ignored)
[CRITICAL] [App ] Unable to get a Window, abort.
Exception SystemExit: 1 in 'kivy.properties.dpi2px' ignored
[CRITICAL] [App ] Unable to get a Window, abort.
Exception SystemExit: 1 in 'kivy.properties.dpi2px' ignored
[CRITICAL] [App ] Unable to get a Window, abort.
Exception SystemExit: 1 in 'kivy.properties.dpi2px' ignored
[CRITICAL] [App ] Unable to get a Window, abort.
我安裝了以下庫:
SDL.x86_64 1.2.15-14.el7 @base
SDL-devel.x86_64 1.2.15-14.el7 @base
SDL2.x86_64 2.0.3-9.el7 @epel
SDL2-devel.x86_64 2.0.3-9.el7 @epel
SDL_image.x86_64 1.2.12-11.el7 @epel
SDL_mixer.x86_64 1.2.12-4.el7 @epel
SDL_mixer-devel.x86_64 1.2.12-4.el7 @epel
SDL_ttf.x86_64 2.0.11-6.el7 @epel
SDL_ttf-devel.x86_64 2.0.11-6.el7 @epel
我在Fedora 20上使用相同的main.py工作,如果我安裝了pygame但它太重了,所以我想使用SDL2。
如果您對如何使其工作有任何想法;)
由於您自己在虛擬環境中安裝了kivy,因此它是在安裝時編譯的。 Kivy在編譯時會檢測可用的庫。 如果之后安裝了SDL2庫,kivy將不會立即獲得SDL2支持。 你應該重新安裝kivy
pip install --upgrade --force-reinstall kivy
您可能會注意到SDL2庫在安裝時在控制台輸出的開頭正確檢測到。 之后,當您運行應用程序時,您應該可以看到SDL2提供程序:
[INFO ] [Logger ] Record log in /home/u1/.kivy/logs/kivy_16-06-03_4.txt
[INFO ] [Kivy ] v1.9.1
[INFO ] [Python ] v2.7.10 (default, May 24 2015, 14:46:10) [GCC]
[INFO ] [Factory ] 179 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [Window ] Provider: sdl2(['window_egl_rpi'] ignored)
有同樣的問題 - 這就是最終為我工作的路線
python3.5 -m pip install kivy --no-use-wheel
這個強制pip編譯kivy並找到sdl2 ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.