emh*_*emh 9 numpy docker seaborn alpine-linux
我想seaborn用这个Dockerfile 安装:
FROM alpine:latest
RUN apk add --update python py-pip python-dev
RUN pip install seaborn
CMD python
Run Code Online (Sandbox Code Playgroud)
我得到的错误与numpy和scipy(需要seaborn)有关.它始于:
/tmp/easy_install-nvj61E/numpy-1.11.1/setup.py:327:UserWarning:无法识别setuptools的命令,则进行与生成用Cython源和扩大模板
最后以
在get_mathlib_info中的文件"numpy/core/setup.py",第654行
RuntimeError:破坏的工具链:无法链接简单的C程序
命令"python setup.py egg_info"失败,错误代码为1/tmp/pip-build-DZ4cXr/scipy /
命令'/ bin/sh -c pip install seaborn'返回非零代码:1
知道如何解决这个问题吗?
Cél*_*urd 22
要修复此错误,您需要安装gcc:apk add gcc.
但是你会看到你会遇到一个新的错误,因为numpy,matplotlip和scipy有几个依赖关系.你还需要安装gfortran,musl-dev,freetype-dev,等.
这是一个基于你的初始版本的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
Run Code Online (Sandbox Code Playgroud)
您会注意到我正在删除依赖项,apk-del .build-deps以限制图像的大小(http://www.sandtable.com/reduce-docker-image-sizes-using-alpine/).
我个人也必须安装ca证书,但似乎你没有这个问题.
注意:您还可以从python:2.7-alpine映像构建映像,以避免安装python和pip自己.
| 归档时间: |
|
| 查看次数: |
4498 次 |
| 最近记录: |