2017-08-24 129 views
0

我正在用docker构建Django实现。我使用Python容器作为基地,但在我的要求,我的文件有以下: -Docker - 通过pip安装模块的Python依赖关系

boto==2.43.0 
boto3==1.4.4 
botocore==1.5.55 
ciscoconfparse==1.2.47 
Django==1.11.4 
django-appconf==1.0.2 
django-auth-ldap==1.2.10 
django-dbtemplates==2.0 
django-debug-toolbar==1.7 
easy-thumbnails==2.3 
easysnmp==0.2.4 
ipaddress==1.0.18 
Jinja2==2.9.5 
mysqlclient-1.3.10 
netmiko==1.2.8 
O365==0.9.5 
orionsdk==0.0.6 
paramiko==2.1.2 
python-dateutil==2.6.0 
python-ldap==2.4.32 
pytz==2016.10 
pyOpenSSL==17.2.0 
sqlparse==0.2.3 
urllib3==1.21.1 
joblib==0.11 

其中的一些在使用它自己的蟒蛇容器时,例如失败的依赖......

#include <net-snmp/net-snmp-config.h> 
             ^
    compilation terminated. 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
    Failed building wheel for easysnmp 
... 
... 
    #include "lber.h" 
        ^
    compilation terminated. 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
    Failed building wheel for pyldap 
... 
... 
    In file included from Modules/LDAPObject.c:9:0: 
    Modules/errors.h:8:18: fatal error: lber.h: No such file or directory 
    #include "lber.h" 
        ^
    compilation terminated. 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-aufmftap/pyldap/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-fjdz1te2-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-aufmftap/pyldap/ 

如何安装操作系统的依赖性为Python模块?在一个容器内? python容器为我运行什么操作系统以获得正确的依赖关系?

感谢

+0

看起来你需要在容器中安装一些额外的(非Python)的包,在这种情况下就像'net-snmp'和'libldap'。 – Thomas

+0

我该怎么做? – AlexW

+0

你使用哪个Docker python图片(哪个标签)? –

回答

4

假设你正在使用的python:3.6图像这是目前最新的,您需要安装一些其他的库。

Dockerfile的例子(PIP库是在requirements.txt文件):

FROM python:3.6 

RUN apt-get update -y \ 
    && apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev libsnmp-dev 

COPY requirements.txt requirements.txt 

RUN pip install -r requirements.txt 

相关问题:I can't install python-ldap