簡體   English   中英

如何讓Kivy 1.9.1或1.9.2在OSX 10.12.2上使用SDL2而不是pygame?

[英]How to I get Kivy 1.9.1 or 1.9.2 to use SDL2 instead of pygame on OSX 10.12.2?

試圖讓Kivy在由Brew安裝的python 2.7.13下的OSX 10.12.2上使用SDL2而不是pygame。 我運行以下命令來安裝依賴項。 它們看起來安裝得很好,因為“釀造醫生”會恢復干凈。

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

然后我嘗試了從源代碼編譯的1.9.2-dev0和1.9.1版本的Kivy,嘗試使用SDL。 我也嘗試了pip install kivy,而不是來自repo的最新代碼,並且這些嘗試都沒有讓Kivy識別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.

如何讓Kivy使用SDL2?

我能夠使用以下程序讓SDL2在OSX 10.12.2上使用Kivy 1.9.2。 假設brew安裝了python 2.7,並且brew安裝了SDL2。

1)下載Kivy源碼(進入/usr/local/lib/python2.7/site-packages目錄)

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

2)設置環境變量告訴Kivy在哪里找到釀造的SDL2庫,不使用OSX框架路徑,實際使用SDL2,並構建Kivy。

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

現在,運行主腳本,您應該看到Window provider是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

在pygame上使用SDL2提供了視網膜支持,並修復了窗口調整大小等黑屏問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM