为什么“pip install”不能在debian docker容器中使用Flask和gevent?

我正在试图用瓶子和geventbuild造一个docker集装箱,而且它并不像我所希望的那样工作。 我可以一起破解,但为什么不安装工作? 下面的全部细节。

Dockerfile:

FROM debian:jessie 

构build容器:

 docker build --pull --no-cache -t flask-test . 

运行容器:

 docker run -it flask-test /bin/bash 

在容器内:

 apt-get update apt-get -y install python-pip apt-get -y install python-dev pip install Flask gevent 

testing:

 python -c "from flask import Flask" 

错误:

 root@2fe825b7f55e:/# python -c "from flask import Flask" Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/flask/__init__.py", line 17, in <module> from werkzeug.exceptions import abort ImportError: No module named werkzeug.exceptions 

尝试修复(忘记点数):

 apt-get -y install python-flask 

再次testing。 错误:

 root@2fe825b7f55e:/# python -c "from flask import Flask" Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/flask/__init__.py", line 21, in <module> from .app import Flask, Request, Response File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 26, in <module> from . import json, cli File "/usr/local/lib/python2.7/dist-packages/flask/cli.py", line 17, in <module> import click ImportError: No module named click 

安装点击,到底是什么。

 pip install click 

现在起作用了。

 root@2fe825b7f55e:/# python -c "from flask import Flask" root@2fe825b7f55e:/# 

编辑 :我可以在我的MacBook上创build一个新的virtualenv, pip install Flask gevent ,它工作正常。 docker中的Python版本2.7.9-2 + deb8u1,我的macbook上的Python 2.7.10。 那可以吗?

编辑2 :上面的命令实际上工作。 我真的做了什么(被打破了)是:

集装箱内:

 apt-get update apt-get -y install python-pip pip install Flask gevent apt-get -y install python-dev pip install Flask gevent 

所以, 不要安装这些没有python的开发

尝试使用--process-dependency-links标志进行pip install

你也可以试试--force-reinstall标志,因为docker镜像有一个老版本的Flask。

上面的命令实际上工作。 我真的做了什么(被打破了)是:

集装箱内:

 apt-get update apt-get -y install python-pip pip install Flask gevent apt-get -y install python-dev pip install Flask gevent 

我以为没关系,也没有注意到,但确实很重要。

所以, 不要安装这些没有python的开发