python-3.x - 在 Ubuntu docker 上运行 Kivy hello world - egl_rpi - ImportError: cannot import name 'bcm'
问题描述
Dockerfile
#Main docker image
FROM ubuntu:18.04
# Install necessary system packages
RUN apt-get update
RUN apt-get install -y \
python3-pip \
build-essential \
git \
python3.7 \
python3-dev \
ffmpeg \
libsdl2-dev \
libsdl2-image-dev \
libsdl2-mixer-dev \
libsdl2-ttf-dev \
libportmidi-dev \
libswscale-dev \
libavformat-dev \
libavcodec-dev \
zlib1g-dev \
pkg-config \
libmtdev1
# Install gstreamer for audio, video (optional)
RUN apt-get install -y \
libgstreamer1.0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good
ADD ./requirements.pip requirements.pip
RUN pip3 install -r requirements.pip
ENTRYPOINT ["tail", "-f", "/dev/null"]
码头工人撰写
version: '3'
services:
webserver:
build:
context: .
dockerfile: Dockerfile
image: name
container_name: name
需求.pip
cython==0.29.9
kivy==1.11.1
主要测试代码
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text='Hello World')
TestApp().run()
错误
error: XDG_RUNTIME_DIR not set in the environment.
[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/local/lib/python3.6/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib
fromlist=[modulename], level=0)
File "/usr/local/lib/python3.6/dist-packages/kivy/core/window/window_egl_rpi.py", line 12, in <module>
from kivy.lib.vidcore_lite import bcm, egl
sdl2 - RuntimeError: b'No available video device'
File "/usr/local/lib/python3.6/dist-packages/kivy/core/__init__.py", line 71, in core_select_lib
cls = cls()
File "/usr/local/lib/python3.6/dist-packages/kivy/core/window/window_sdl2.py", line 152, in __init__
super(WindowSDL, self).__init__()
File "/usr/local/lib/python3.6/dist-packages/kivy/core/window/__init__.py", line 981, in __init__
self.create_window()
File "/usr/local/lib/python3.6/dist-packages/kivy/core/window/window_sdl2.py", line 290, in create_window
self.get_gl_backend_name())
File "kivy/core/window/_window_sdl2.pyx", line 110, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
File "kivy/core/window/_window_sdl2.pyx", line 74, in kivy.core.window._window_sdl2._WindowSDL2Storage.die
x11 - ModuleNotFoundError: No module named 'kivy.core.window.window_x11'
File "/usr/local/lib/python3.6/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib
fromlist=[modulename], level=0)
[CRITICAL] [App ] Unable to get a Window, abort.
我只找到了一些关于ubuntu
哪些说要安装libsdl2-image-dev
但没有工作的参考资料,因为你可以看到我已经在安装它。
解决方案
推荐阅读
- amazon-web-services - AWS S3 获取特定键的对象标签
- .net - 分析结果?Visual Studio 文本编辑器中的那些粉红色线条是什么?
- python - 如何从 tkinter 中的按钮图像中删除背景?
- python - 不同页面的不同标题 - Weasyprint PDF Generation
- node.js - 过滤对象数据并将其拆分为反应本机中的多个对象
- sql - EF Core 复杂的 where 子句
- python - 将列中具有相同值的行合并在一起
- php - 当我在我的 wordpress 网站中更新帖子时出现错误,它显示“更新失败。响应不是有效的 JSON 响应。”
- r - R中用于预测的语法
- ios - 左或右对齐自定义 UITableView 单元格的 shouldShowMenuForRowAt 菜单