2017-08-24 128 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