x11 - ImportError:没有名为“kivy.core.window.window_x11”的模块
Posted
技术标签:
【中文标题】x11 - ImportError:没有名为“kivy.core.window.window_x11”的模块【英文标题】:x11 - ImportError: No module named 'kivy.core.window.window_x11' 【发布时间】:2018-01-13 17:59:17 【问题描述】:当我尝试在我的 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.
当我在以前的 kali linux 操作系统中安装 kivy 时,它曾经可以正常工作,但由于某些原因,我再次安装了 kali 并再次安装了 kivy,但这次我无法使其正常工作。
【问题讨论】:
解决了它只是在终端中运行命令“pip install git+github.com/kivy/kivy.git@master”它对我有用 我也需要 URL 方案,所以这对我有用:pip install git+https://github.com/kivy/kivy.git@master
【参考方案1】:
在我的例子中,它是一个过时的 kivy 版本。我看到你也在运行 python3。删除 kivy 后,我执行了以下操作,解决了我的问题:
sudo add-apt-repository ppa:kivy-team/kivy
sudo apt-get update
sudo apt-get install python3-kivy
【讨论】:
在 Ubuntu 19.04 上不适合我 - 运行我以前工作的 Kivy 程序会出现严重错误:Unable to find any valuable Window provider.
【参考方案2】:
pip install git+https://github.com/kivy/kivy.git@master
它对我来说就像一个魅力。
【讨论】:
【参考方案3】:在 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 website 中的“稳定”包也无济于事,我必须承认这有点令人失望。
对我有用的是通过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
安装的依赖项,我碰巧已经安装了。
【讨论】:
这行得通。唯一需要的更改是将libav-dev
替换为libavcodec-dev
不要将sudo
与 pip 一起使用。这些包不需要root权限。【参考方案4】:
我在 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
【讨论】:
以上是关于x11 - ImportError:没有名为“kivy.core.window.window_x11”的模块的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:没有名为 websocket 的模块