python - 高山 Docker 图像上的 Pygame?
问题描述
我正在尝试在 Docker 上安装一个 Django 项目,以进行测试,但是当我安装了 Pygame 库时,它会启动一个错误(实际上很多),说没有可安装的 Pygame 版本,从 2.0.1 到1.9.2,并且在某种程度上,它们都显示类似于/bin/sh: sdl2-config: not found
. 我尝试搜索,看来我需要一个 SDL2 包才能工作。Alpine 有一个 SDL2 包,尝试安装它,但没有用,再搜索一点发现也许我需要一个更具体的包,称为 python:pygame-sdl2,但我发现尊重 Alpine 的唯一一件事是这个谷歌结果:
它提到 Alpine 上没有该包,但是如果我单击结果链接,我将找不到同一行。
有谁知道是否可以在 Alpine Image 上安装 Pygame 项目,或者下一个可推荐的安装 Django 项目的图像?
这是我的 Dockerfile,以防万一:
FROM python:3.8-alpine as base
ENV PYTHONUNBUFFERED 1
RUN apk add --no-cache --virtual .build-deps \
ca-certificates gcc postgresql-dev linux-headers musl-dev libffi-dev jpeg-dev zlib-dev geos sdl2\
&& rm -rf /var/cache/apk/*
RUN pip3 install --upgrade pip
COPY requirements.txt .
RUN pip install -r requirements.txt
FROM base as debug
RUN pip3 install debugpy
解决方案
正如@DavidMaze 提到的,包 sdl2-dev 是必需的,有 2 个版本的包,普通版本和 -devs,似乎 python 库需要最新的,原因是为什么我安装时不起作用sdl2。在此之后,我只需要处理一些其他缺少的包(最糟糕的是 portmidi,因为它在 Edge 分支上),但毕竟,库已经编译好了。
推荐阅读
- python - Python - 如何读取从 Tkinter 中选择的文件?
- python - Seaborn FacetGrid 在彼此旁边绘制两个不同的 y 轴
- python - 我正在尝试将 .apply 应用于 pandas 中的列,但它抛出 TypeError: 'float' object is not subscriptable
- python - 当试图可视化由 numpy.meshgrid() 生成的“常规”网格点时,我看到了白色的垂直线。为什么会这样?
- python - 我需要选择一个 div 标签,它有一个带有 beautifulsoup 的特定子标签
- php - 检查字符串是否没有 6 位数字
- smarty - Smarty 中的 Foreach
- reactjs - 如何在酶和玩笑中使用模拟功能模拟点击事件?
- wordpress - Wordpress 在删除帖子后引用了错误的链接
- react-native - 尝试获取导航参考时反应本机博览会崩溃