首页 > 解决方案 > 错误:不可满足的约束:libopenjp2-7(缺失):要求:世界 [libopenjp2-7]

问题描述

我正在使用 python:3.7-alpine 基础映像为 Django 项目构建 Dockerfile。

在 requirements.text 文件中我有 WeasyPrint==47

我需要 WeasyPrint 的 libopenjp2-7 包,因为在运行 Django 应用程序时出现此错误。

ImportError: Error loading shared library libopenjp2.so.7: No such file or directory (needed by /code/env/lib/python3.7/site-packages/PIL/_imaging.cpython-37m-x86_64-linux-gnu.so)
Starting server 

这是泊坞窗文件:

FROM python:3.7-alpine

RUN apk add --no-cache postgresql-dev gettext libxml2-dev libxslt-dev \
    freetype-dev libpng-dev jpeg-dev \
    zlib-dev musl-dev git

RUN pip install --upgrade pip virtualenv==16.7.9

RUN apk add --update gcc \
                    openjpeg \
                    libopenjp2-7 \
                    libffi-dev \
                    cairo-dev \
                    pango-dev \
                    gdk-pixbuf-dev

但是当我构建它时,我收到了这个错误:

ERROR: unsatisfiable constraints:
  libopenjp2-7 (missing):
    required by: world[libopenjp2-7]

有谁知道是什么问题?

标签: pythondockerdockerfilealpineweasyprint

解决方案


您可能正在寻找openjpeg包。

请记住,不同的 Linux 发行版具有不同的包名称,并且它们不一定遵循您可以从共享库文件的名称中猜出包名称的模式。对于 Alpine,https://pkgs.alpinelinux.org/有一个可搜索的软件包数据库。


推荐阅读