2017-01-24 30 views
6

Próbujesz zmusić Kivy do używania SDL2, a nie pygame, na OSX 10.12.2 pod pytonem 2.7.13 zainstalowanym przez napar. Uruchomiłem następujące, aby zainstalować zależności. Wygląda na to, że są dobrze zainstalowane, ponieważ "lekarz do parzenia" zwraca czystość.Jak uzyskać Kivy 1.9.1 lub 1.9.2 używać SDL2 zamiast pygame na OS X 10.12.2?

brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer 
pip install -I Cython==0.23 

Potem próbowałem zarówno 1.9.2 i 1.9.1-dev0 wersję Kivy, kompilacja ze źródeł, z próbą wykorzystania SDL. Próbowałem także zainstalować kivy z pipem, zamiast najnowszego kodu z repozytorium, a żadna z tych prób nie pozwala Kivy rozpoznać SDL2.

git clone http://github.com/kivy/kivy 
cd kivy 
USE_SDL2=1 make force 
USE_OSX_FRAMEWORKS=0 sudo pip install -e kivy 

bash-3.2$ KIVY_WINDOW=sdl2 KIVY_IMAGE=sdl2 KIVY_CLIPBOARD=sdl2 KIVY_TEXT=sdl2 python main.py 
[INFO ] [Logger  ] Record log in /Users/dancaron/.kivy/logs/kivy_17-01-23_107.txt 
[INFO ] [Kivy  ] v1.9.2-dev0 
[INFO ] [Python  ] v2.7.13 (default, Jan 23 2017, 19:04:34) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] 
[INFO ] [Factory  ] 193 symbols loaded 
[INFO ] [Image  ] Providers: (img_imageio, img_tex, img_dds, img_pygame, img_ffpyplayer, img_pil, img_gif ignored) 
[CRITICAL] [App   ] Unable to get any Image provider, abort. 

Jak mogę przekonać Kivy do korzystania z SDL2?

Odpowiedz

3

Udało mi się uzyskać SDL2 pracujący z Kivy 1.9.2 na OS X 10.12.2, wykonując poniższą procedurę. Zakłada się, że napar zainstalowany python 2.7 i napar zainstalowany SDL2.

1) Pobierz źródło Kivy (w katalogu /usr/local/lib/python2.7/site-packages)

git clone https://github.com/kivy/kivy 
cd kivy 

2) Ustaw zmienne środowiskowe powiedzieć Kivy gdzie znaleźć parzonej bibliotekami SDL2, nie używać ścieżki do frameworków OSX i używać SDL2 oraz budować Kivy.

KIVY_SDL2_PATH=/usr/local/lib USE_OSX_FRAMEWORKS=0 USE_SDL2=1 make force 

Teraz, uruchamiając swój główny skrypt, powinieneś zobaczyć Dostawca okna to SDL2.

bash-3.2$ python main.py 
[WARNING] [Config  ] Older configuration version detected (14 instead of 17) 
[WARNING] [Config  ] Upgrading configuration in progress. 
[INFO ] [Kivy  ] v1.9.2-dev0 
[INFO ] [Python  ] v2.7.13 (default, Jan 23 2017, 19:04:34) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] 
[INFO ] [Factory  ] 193 symbols loaded 
[INFO ] [Image  ] Providers: img_tex, img_imageio, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored) 
[INFO ] [OSC   ] using <multiprocessing> for socket 
[INFO ] [Window  ] Provider: sdl2 

Używanie SDL2 ponad pygame zapewnia obsługę siatkówki i naprawia problemy takie jak czarny ekran przy zmianie rozmiaru okna.