在Docker中使用枕头

由于某些原因,我无法在docker中安装python的PIL模块。 以下是我的描述:

requirements.txt

Pillow flask redis 

Dockerfile

 FROM python:2.7 ADD . /code WORKDIR /code RUN pip install -r requirements.txt CMD python app.py 

app.py

 import PIL 

命令

 $ sudo docker build -t web . Installing collected packages: Pillow, Werkzeug, MarkupSafe, Jinja2, itsdangerous, flask, redis Successfully installed Jinja2-2.8 MarkupSafe-0.23 Pillow-2.9.0 Werkzeug-0.10.4 flask-0.10.1 itsdangerous-0.24 redis-2.10.3 ---> 91dfb38bd480 Removing intermediate container 4e4ca5801814 Step 4 : CMD python app.py ---> Running in e71453f2fab6 ---> d62996658bd6 Removing intermediate container e71453f2fab6 Successfully built d62996658bd6 $ sudo docker-compose up 

这是我得到的: 输出

 web_1 | File "app.py", line 1, in <module> web_1 | import PIL web_1 | ImportError: No module named PIL 

我想可能在requirements.txt中添加PIL会起作用,但是在构build时会发生什么

 $ sudo docker build -t web . .... Collecting PIL (from -r requirements.txt (line 1)) Could not find a version that satisfies the requirement PIL (from -r requirements.txt (line 1)) (from versions: ) Some externally hosted files were ignored as access to them may be unreliable (use --allow-external PIL to allow). No matching distribution found for PIL (from -r requirements.txt (line 1)) 

任何想法从这里应该做什么?

PIL将是Python影像库(PIL)
(有时候, 你需要import Image而不是import PIL

根据“ 如何安装Python映像库(PIL)? ”,您还需要安装其他组件

 sudo apt-get build-dep python-imaging sudo apt-get install libjpeg62 libjpeg62-dev pip install PIL 

有关使用Pillow(Python Imaging Library)依赖项的示例,另请参阅a5huynh/scrapyd-playground/Dockerfile

(但请注意,正如雨果 在下面所述 ,这个混合了两个模块:PIL和Pillow。
枕头是一个维护的叉子和原来的未维护的PIL的一个直接replace,所以你不应该同时安装)

 RUN apt-get update && apt-get install -y \ python-dev python-pip python-setuptools \ libffi-dev libxml2-dev libxslt1-dev \ libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev \ liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk # Add the dependencies to the container and install the python dependencies ADD requirements.txt /tmp/requirements.txt RUN pip install -r /tmp/requirements.txt && rm /tmp/requirements.txt RUN pip install Pillow 

符合要求:

 Pillow==2.6.1 Scrapy==0.24.4 Twisted==14.0.2 boto==2.36.0 cffi==0.8.6 characteristic==14.2.0 cryptography==0.6.1 cssselect==0.9.1 lxml==3.4.0 pyOpenSSL==0.14 pyasn1==0.1.7 pyasn1-modules==0.0.5 pycparser==2.10 pymongo==2.8 queuelib==1.2.2 scrapy-mongodb==0.8.0 scrapyd==1.0.1 service-identity==14.0.0 six==1.8.0 w3lib==1.10.0 zope.interface==4.1.1