Django,Docker,Python无法在pythonalpin上安装枕头

2024-10-01 11:36:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Dockerizedjango应用程序,我想投入生产。但是自从我添加了一个Imagefield枕头之后,我就很难在Docker容器中安装枕头了。在

据我所知,添加依赖关系jpeg dev ibjpeg&zlib dev对于django(?)应该足够了。对于以下配置,我收到错误:

runserver上出错:

product.Product.image: (fields.E210) Cannot use ImageField because Pillow is not installed.
    HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
product.Product.thumbnail: (fields.E210) Cannot use ImageField because Pillow is not installed.
    HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".

如果我加枕头要求.txt(或将pip install Pillow放入Dockerfile)我在尝试构建容器时收到一条更长的错误消息。

不将pip install Pillow放入Dockerfile或要求.txt-这是我的配置。在

Dockerfile:

^{pr2}$

要求.txt

astroid==2.1.0
certifi==2018.11.29
chardet==3.0.4
Django==2.1.7
django-cors-headers==2.4.0
django-filter==2.1.0
djangorestframework==3.9.1
djangorestframework-simplejwt==3.3
gunicorn==19.9.0
httpie==1.0.2
httpie-jwt-auth==0.3.0
idna==2.8
isort==4.3.4
lazy-object-proxy==1.3.1
Markdown==3.0.1
mccabe==0.6.1
PyJWT==1.7.1
requests==2.21.0
six==1.12.0
urllib3==1.24.1
wrapt==1.11.1

我已经有一段时间了。有人能帮忙吗?在


Tags: installpipdjangodevdockerfiletxtfields错误
2条回答

任何对我有用的东西感兴趣的人。在

我的问题有很多方面——一个是我在docker和Ubuntu方面做得不好。在

但这里有一些见解:安装枕头需要几个依赖项。据我所知,你需要:gcc python3-dev jpeg-dev zlib-dev

为了防止这些依赖项最终出现在最终映像中(保持图像大小较小),您可以安装一些(不是全部!)它们在虚拟包中,并在安装Pillow后删除它们(这些依赖项称为构建依赖项-仅在构建期间需要)。在

所以这是对我有用的代码:

RUN apk update \
    && apk add  virtual build-deps gcc python3-dev musl-dev \
    && apk add postgresql \
    && apk add postgresql-dev \
    && pip install psycopg2 \
    && apk add jpeg-dev zlib-dev libjpeg \
    && pip install Pillow \
    && apk del build-deps

(Pillow不需要一些东西,例如postgresql,postgresql dev)——正如您所见,我将构建依赖项安装在一个名为build-deps的虚拟包中。之后,我安装了枕头,最后我删除了构建依赖。在

我想,这也是@LinPy提出的解决方案,我只是想解释这个非常冗长的问题,最终帮助其他人。在

{a1}

将此添加到您的Dockerfile

RUN apk add  no-cache jpeg-dev zlib-dev
RUN apk add  no-cache  virtual .build-deps build-base linux-headers \
    && pip install Pillow

来源:Github

相关问题 更多 >