Numpy 在Docker Alpine上安装seaborn

Numpy 在Docker Alpine上安装seaborn,numpy,docker,seaborn,alpine,Numpy,Docker,Seaborn,Alpine,我正在尝试使用此Dockerfile安装seaborn: FROM alpine:latest RUN apk add --update python py-pip python-dev RUN pip install seaborn CMD python 我得到的错误与numpy和scipy(seaborn要求)有关。首先是: /tmp/easy_install-nvj61E/numpy-1.11.1/setup.py:327:UserWarning: 无法识别的setuptools

我正在尝试使用此Dockerfile安装
seaborn

FROM alpine:latest

RUN apk add --update python py-pip python-dev 

RUN pip install seaborn

CMD python
我得到的错误与
numpy
scipy
(seaborn要求)有关。首先是:

/tmp/easy_install-nvj61E/numpy-1.11.1/setup.py:327:UserWarning: 无法识别的setuptools命令,继续生成Cython 源和扩展模板

文件“numpy/core/setup.py”,第654行,在get_mathlib_info中

运行时错误:断开的工具链:无法链接简单的C程序

命令“python setup.py egg_info”失败,错误代码为1,位于/tmp/pip-build-DZ4cXr/scipy中/

命令'/bin/sh-c pip install seaborn'返回一个非零代码:1


你知道我如何解决这个问题吗?

要解决这个错误,你需要安装
gcc
apk add gcc

但您将看到,由于numpy、matplotlip和scipy有几个依赖项,因此您将遇到一个新错误。您还需要安装
gfortran
musl-dev
freetype-dev
,等等

这是一个Dockerfile,基于您最初的Dockerfile,它将安装这些依赖项以及
seaborn

FROM alpine:latest

# install dependencies
# the lapack package is only in the community repository
RUN echo "http://dl-4.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk --update add --no-cache \ 
    lapack-dev \ 
    gcc \
    freetype-dev

RUN apk add python py-pip python-dev 

# Install dependencies
RUN apk add --no-cache --virtual .build-deps \
    gfortran \
    musl-dev \
    g++
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h

RUN pip install seaborn

# removing dependencies
RUN apk del .build-deps

CMD python
您会注意到,我正在使用
apk del.build deps
删除依赖项,以限制映像的大小()

就个人而言,我还必须安装ca证书,但似乎你没有这个问题


注意:您还可以从
python:2.7-alpine
映像构建映像,以避免自己安装python和pip

太棒了,成功了。建造这个容器花了很长时间,但最终还是完成了(重量为693.3MB)。谢谢你的回答(解决了我的问题,还教了我一些关于Docker最佳实践的知识)。@emh不客气。我还必须构建包含scipy的图像,我确认从头开始构建它们需要很长时间。保持它们的小尺寸也是很困难的。至少它们比基于Ubuntu的图像要小!我在测试库ATM中找不到
lapack dev
(使用
python:alpine
docker图像别名,用于
python:3.6-alpine
),因此我需要使用来获取
lapack dev
package@shadi你说得对,软件包已移动到社区存储库,我将更新答案最近
numpy
被更新,编译失败。如前所述,您可以执行
pip install numpy==1.14.3
,但请注意,如果您也开始安装
pandas
,它将再次尝试使用最新版本的
numpy