Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在Ubuntu docker-egl#u rpi-ImportError上运行Kivy hello world:无法导入名称';车身控制模块';_Python 3.x_Docker_Kivy - Fatal编程技术网

Python 3.x 在Ubuntu docker-egl#u rpi-ImportError上运行Kivy hello world:无法导入名称';车身控制模块';

Python 3.x 在Ubuntu docker-egl#u rpi-ImportError上运行Kivy hello world:无法导入名称';车身控制模块';,python-3.x,docker,kivy,Python 3.x,Docker,Kivy,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 \ li

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
docker compose

#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.
错误:环境中未设置XDG\U运行时\U目录。
[关键][窗口]找不到任何有价值的窗口提供程序。请启用调试日志记录(例如,如果从命令行运行,请添加-d,或者在配置中更改日志级别),然后重新运行应用程序以确定潜在原因
egl_rpi-导入错误:无法导入名称“bcm”
文件“/usr/local/lib/python3.6/dist packages/kivy/core/_init__.py”,第63行,在core\u select\u lib中
fromlist=[modulename],级别=0)
文件“/usr/local/lib/python3.6/dist packages/kivy/core/window/window\u egl\u rpi.py”,第12行,在
从kivy.lib.vidcore_lite导入bcm,egl
sdl2-运行时错误:b“没有可用的视频设备”
文件“/usr/local/lib/python3.6/dist packages/kivy/core/_init__.py”,第71行,在core\u select\u lib中
cls=cls()
文件“/usr/local/lib/python3.6/dist packages/kivy/core/window/window\u sdl2.py”,第152行,在__
超级(WindowSDL,self)。\uuuuu init\uuuuuuu()
文件“/usr/local/lib/python3.6/dist-packages/kivy/core/window/__-init__.py”,第981行,在_-init中__
self.create_window()
文件“/usr/local/lib/python3.6/dist packages/kivy/core/window/window\u sdl2.py”,第290行,在create\u窗口中
self.get\u gl\u backend\u name())
文件“kivy/core/window/_window_sdl2.pyx”,第110行,在kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window中
文件“kivy/core/window/_window_sdl2.pyx”,第74行,在kivy.core.window._window_sdl2._WindowSDL2Storage.die中
x11-ModuleNotFoundError:没有名为'kivy.core.window.window_x11'的模块
文件“/usr/local/lib/python3.6/dist packages/kivy/core/_init__.py”,第63行,在core\u select\u lib中
fromlist=[modulename],级别=0)
[关键][应用]无法获取窗口,中止。

我只找到了一些关于
ubuntu
的参考资料,上面说要安装
libsdl2 image dev
,但正如你看到的那样,我已经在安装它了。

Dockerfile不能产生错误消息:它是硬连接的,不能以很难覆盖的方式执行任何操作。您是如何启动该应用程序的?Docker中的图形应用程序充其量是棘手和挑剔的,您最好在没有Docker的Python虚拟环境中运行它。我想问题是在尝试启动刹车应用程序的图形界面时。为应用程序提供一个隔离的环境是一个好的做法?类似于conda?Python打包用户指南pipfile,但是任何基于Python虚拟环境的东西都可以很好地工作。是的,但我指的是可以在笔记本电脑之间轻松共享的东西,比如刚刚运行的dockerfile及其工作包