为什么“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的开发 !