x11 - ImportError: 找不到模块“kivy.core.window.window_x11”

9
当我尝试在我的Kali Linux操作系统中使用Python 3.5运行任何Kivy程序时,我会收到以下错误信息。
程序:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.relativelayout import RelativeLayout

Builder.load_string('''
<hey>:
    RelativeLayout:
        Button:
            text:"Hey"
''')

class hey(RelativeLayout):
    pass

class helloApp(App):
    def build(self):
        return hey()

if __name__=="__main__":
    helloApp().run()

错误:-

[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 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 - TypeError: expected bytes, str found
  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 138, in __init__
    super(WindowSDL, self).__init__()
  File "/usr/lib/python3/dist-packages/kivy/core/window/__init__.py", line 722, in __init__
    self.create_window()
  File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 237, in create_window
    self.fullscreen, resizable, state)
  File "kivy/core/window/_window_sdl2.pyx", line 94, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy/core/window/_window_sdl2.c:2204)

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.

以前安装kivy在之前的Kali Linux操作系统上运行良好,但由于某些原因我重新安装了Kali,并再次安装了kivy,但这次我无法使其工作。


1
我解决了,只需在终端中运行命令“pip install git+https://github.com/kivy/kivy.git@master”,对我来说它有效。 - Akash Tyagi
1
我也需要URL方案,所以这个对我有效:pip install git+https://github.com/kivy/kivy.git@master - bryn
5个回答

5

在我的情况下,是由于使用了一个过时的kivy版本。我看到您也在运行python3。在删除kivy后,我执行了以下操作来解决我的问题:

 sudo add-apt-repository ppa:kivy-team/kivy
 sudo apt-get update
 sudo apt-get install python3-kivy

2
在Ubuntu 19.04上对我不起作用 - 运行之前正常工作的Kivy程序会出现Critical错误:无法找到任何有价值的窗口提供程序。 - Kingsley

2
pip install git+https://github.com/kivy/kivy.git@master

这对我来说就像魔法一样有效。


2
在Ubuntu 19.04上,我基本上遇到了同样的错误(错误信息略有不同)。
...
[CRITICAL] [Window      ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
egl_rpi - ImportError: cannot import name 'bcm' from 'kivy.lib.vidcore_lite' (/usr/lib/python3/dist-packages/kivy/lib/vidcore_lite/__init__.py)
  File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 63, 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

即使尝试了这些答案中的建议,错误仍然存在。即使使用从Kivy网站下载的“稳定”包也没有帮助,这有点令人失望。

对我有用的是通过pip3安装Kivy包,但这也需要一些依赖项:

# remove the old packages
sudo apt-get remove --purge *kivy*

# install some dependencies for the package build
sudo apt-get install libav-dev libsdl2-dev libavformat-dev libavdevice-dev

# Install the kivy modules with `pip3` (assuming pip3 is installed already)
sudo pip3 install ffpyplayer
sudo pip3 install kivy
sudo pip3 install kivy-examples

可能还需要通过pip3安装一些依赖项,我已经安装了这些依赖项。


1
这个有效。唯一需要更改的是将“libav-dev”替换为“libavcodec-dev”。 - Ashutosh
不要在pip命令中使用sudo。这些软件包不需要root权限。 - Alex

2

我在Ubuntu 18.04.1上运行我的第一个python3-kivy(v1.11.1)应用程序时遇到了类似的问题。

以下是我的错误日志:

[CRITICAL] [Window      ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes egl_rpi - ImportError: cannot import name 'bcm'
File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 63, 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 - ImportError: libSDL2_image-2.0.so.0: cannot open shared object file: No such file or directory
File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib
fromlist=[modulename], level=0)
File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 27, in <module>
from kivy.core.window._window_sdl2 import _WindowSDL2Storage

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

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

对我有用的解决方案:

尝试安装python3-sdl2。sudo apt-get install python3-sdl2 然后重新运行你的应用程序。

额外信息:安装python3-kivy不是一件容易的事。所以在我能运行我的第一个应用程序之前,我提供了完整的安装步骤。希望对某些人有所帮助:

# Install the dependencies
sudo apt-get install python3-setuptools libsdl2-dev libavformat-dev libavdevice-dev python3-sdl2

# Install python3-kivy via ppa. Pip install didn't work for me.
sudo add-apt-repository ppa:kivy-team/kivy
sudo apt-get update
sudo apt-get install python3-kivy

# Install ffpyplayer
python3 -m pip install ffpyplayer

# Run the app
python3 main.py

-2

尝试安装pygame

pip install pygame

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接