2017-01-08 20 views
0

我正在试图用瓶子和gevent构建一个码头集装箱,但它并不像我希望的那样工作。我可以一起破解它,但为什么不安装工作?以下全部细节。为什么“pip install”不能在debian docker容器中使用Flask和gevent?

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" 

错误:

[email protected]:/# 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 

尝试修复(忘了PIP):

apt-get -y install python-flask 

再次测试。错误:

[email protected]:/# 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 

现在它的工作。

[email protected]:/# python -c "from flask import Flask" 
[email protected]:/# 

编辑:我可以创造我的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 

所以,不点子没有蟒蛇-dev的安装这些!

回答

1

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

您还可以尝试使用--force-reinstall标志,以确定docker映像具有旧版本的Flask。

+0

感谢您的回答。我试过'pip install --process-dependency-links Flask gevent'和'pip install --process-dependency-links --force-reinstall Flask gevent',我也遇到同样的问题。 :( – dfrankow

+0

我发现我的问题,我在安装python-dev之前一直运行pip install,然后安装python-dev,我不认为这很重要,但它确实,我很快就会删除这个问题。 – dfrankow

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

相关问题