我正在尝试使用flask和gevent构建一个docker容器,但它并没有像我希望的那样工作。我可以一起破解它,但为什么不进行pip安装工作?详情如下。
Dockerfile:
FROM debian:jessie
构建容器:
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
测试:
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
再次测试。错误:
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 pip install Flask gevent
上创建一个新的virtualenv,它运行正常。 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-dev 的情况下安装这些内容!
答案 0 :(得分:1)
尝试使用pip install
标记执行--process-dependency-links
。
你也可以试试--force-reinstall
旗帜,因为这个码头图片有旧版本的Flask。
答案 1 :(得分:0)
以上命令实际上有效。我真正做过的事(那被打破了)是:
容器内的:
apt-get update
apt-get -y install python-pip
pip install Flask gevent
apt-get -y install python-dev
pip install Flask gevent
我认为这没关系,并没有注意到,但确实很重要。
所以,不要在不使用python-dev 的情况下安装这些内容!