不能 运行 Kivy on Ubuntu Wily

Can't run Kivy on Ubuntu Wily

我是 python 和 kivy 的新手,我想 运行 我的第一个 kivy 程序。当我 运行 程序时,我得到这个错误:

/usr/bin/python3.4 /home/mmu/PycharmProjects/ShipControl/gui/gui.py
[INFO              ] [Logger      ] Record log in /home/mmu/.kivy/logs/kivy_15-11-29_0.txt
[INFO              ] [Kivy        ] v1.9.0
[INFO              ] [Python      ] v3.4.3+ (default, Oct 14 2015, 16:03:50) 
[GCC 5.2.1 20151010]
[INFO              ] [Factory     ] 173 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)
[CRITICAL          ] [Window      ] Unable to find any valuable Window provider at all!
egl_rpi - ImportError: cannot import name 'bcm'
  File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 57, 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 - TypeError: expected bytes, str found
  File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 65, in core_select_lib
    cls = cls()
  File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 121, in __init__
    super(WindowSDL, self).__init__()
  File "/usr/lib/python3/dist-packages/kivy/core/window/__init__.py", line 616, in __init__
    self.create_window()
  File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 171, in create_window
    self.fullscreen, resizable, state)
  File "kivy/core/window/_window_sdl2.pyx", line 60, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy/core/window/_window_sdl2.c:1379)

x11 - ImportError: No module named 'kivy.core.window.window_x11'
  File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 57, in core_select_lib
    fromlist=[modulename], level=0)

[CRITICAL          ] [App         ] Unable to get a Window, abort.

Process finished with exit code 1

我使用

安装了 kivy
sudo apt-get install python3-kivy

我错过了什么吗?当我搜索这些错误时,我发现有人建议安装 pygame 但这似乎是一个死项目?

正如 inclement 在他的评论中所说,切换到 kivy-daily 解决了这个问题!我必须在我的机器上进行 dist-upgrade 来解决一些依赖关系。

我刚从 git 安装了 kivy on wily,这是我的 bash_history

sudo apt-get install git
mkdir ~/code
cd ~/code
git clone http://github.com/kivy/kivy
cd kivy/
wget http://bootstrap.pypa.io/get-pip.py
python get-pip.py --user
export PATH=$PATH:~/.local/bin/
pip install cython --user
sudo apt-get install python-dev
sudo apt-get install libgles2-mesa-dev
pip install cython --user
sudo apt-get install libgles1-mesa-dev
sudo apt-get install libsdl2-dev     libsdl2-image-dev     libsdl2-mixer-dev     libsdl2-ttf-dev     libportmidi-dev     libswscale-dev     libavformat-dev     libavcodec-dev     zlib1g-dev
make
export PYTHONPATH=~/code/kivy/
pip install pygments --user
pip install docutils --user
python examples/demo/showcase/main.py

要使用 python3 只需将 make 替换为 python3 build_ext --inplace pip 和 pip3 然后你可以 运行 使用 python3

我16.04也出现过这个问题

我的解决方案,删除 ubuntu 包(为了省事)并使用 pip 安装:

sudo apt-get remove python3-kivy
sudo pip3 install kivy

我的解决方案与塞巴斯蒂安的类似,但适用于 Python 2.7。

sudo apt-get remove python-kivy
sudo pip install kivy
sudo pip install pygame

误判sdl2 - TypeError: expected bytes, str found

sdl2 dependency 的安装帮助了我: sudo apt-get install python3-sdl2