Как исправить ошибку «pygame.error: Нет доступных видеоустройств», связанную с pygame на докере? - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь запустить изображение с помощью скрипта pygame, но получаю ошибку: pygame.error: Нет доступных видеоустройств

Сценарий pygame хорошо работает на моем компьютере (Linux, Ubuntu 16.04, 32 бита, я установил docker, выполнив следующие действия: https://stackoverflow.com/a/48881019/6796652), проблема возникает, когда я включаю его в образ файла dockerfile.

Я прочитал несколько сообщений, связанных с тем, что проекты pygame не будут запускаться: "pygame.error: Нет доступного видеоустройства" , но я не смог найти ту же проблему в файле dockerfile.

Это часть скрипта pygame:

import pygame

def main():
    pygame.init()
    screen=pygame.display.set_mode((400,600))

    # Here are more code...
    # And finally

    pygame.quit()

main() 

Я пытался включить эту часть, как говорится в этом посте https://stackoverflow.com/a/53623914/6796652

from pygame.locals import *

Это мой Dockerfile:

FROM python:3
WORKDIR /myfolder
COPY main.py someimage.png wallpaper.jpg requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
CMD [ "python", "./main.py" ]

Я пробовал также с образом Ubuntu, но результат был точно таким же:

FROM ubuntu:14.04
WORKDIR /myfolder
COPY main.py someimage.png wallpaper.jpg requirements.txt ./
RUN apt-get update
RUN apt-get install python-pip python-dev build-essential -y
RUN pip install --upgrade pip 
RUN pip install --no-cache-dir -r requirements.txt
CMD [ "python", "./main.py" ]

Даже при установке зависимостей для Python 3.x, как сказано в документации: http://www.pygame.org/wiki/CompileUbuntu результат был таким же

FROM python:3
WORKDIR /DefeatTheBat
COPY bat.png main.py wallpaper.jpg requirements.txt ./
RUN apt-get update && apt-get install -y \
    python3-dev -y \ 
    python3-setuptools -y \ 
    python3-numpy -y \ 
    python3-opengl -y  \ 
    libsdl-image1.2-dev -y \ 
    libsdl-mixer1.2-dev -y \ 
    libsdl-ttf2.0-dev -y \ 
    libsmpeg-dev -y \ 
    libsdl1.2-dev -y \ 
    libportmidi-dev -y \ 
    libswscale-dev -y \ 
    libavformat-dev -y \ 
    libavcodec-dev -y \ 
    libtiff5-dev -y \ 
    libx11-6 -y \ 
    libx11-dev -y \ 
    fluid-soundfont-gm -y \ 
    timgm6mb-soundfont -y \ 
    xfonts-base -y \ 
    xfonts-100dpi -y \ 
    xfonts-75dpi -y \ 
    xfonts-cyrillic -y \ 
    fontconfig -y \ 
    fonts-freefont-ttf -y \ 
    libfreetype6-dev -y
RUN pip install --no-cache-dir -r requirements.txt
CMD [ "python", "./main.py" ]

И требования. Текст:

pygame==1.9.5

Я получаю эту ошибку:

    screen=pygame.display.set_mode((400,600)) 
pygame.error: No available video device

Когда должны отображаться окна. Если я попробую эту часть в моей интерактивной оболочке Python, она будет работать хорошо.

Как я могу исправить этот образ dockerfile?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...