我正在尝试在基于Alpine 3.1的docker容器中安装numpy。我正在使用以下Dockerfile:
FROM alpine:3.1
RUN apk add --update make cmake gcc g++ gfortran
RUN apk add --update python py-pip python-dev
RUN pip install cython
RUN pip install numpy
当我收到以下错误时,这一直运行到pip install numpy
:
error: Command "gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -Inumpy/core/include -Ibuild/src.linux-x86_64-2.7/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/include/python2.7 -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -c build/src.linux-x86_64-2.7/numpy/core/src/npymath/ieee754.c -o build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/numpy/core/src/npymath/ieee754.o" failed with exit status 1
easy_install-2.7 numpy
给出了同样的错误。
我缺少任何配置/安装步骤吗?
如果您不需要从numpy
安装pypi
,您可以从alpine存储库安装它。包名为py-numpy
,位于testing
存储库中,请参阅here。最小的Dockerfile
例子对我有用
FROM alpine:3.2
ADD repositories /etc/apk/repositories
RUN apk add --update python python-dev gfortran py-pip build-base py-numpy@community
repositories
文件的内容
http://dl-cdn.alpinelinux.org/alpine/v3.2/main
@community http://dl-cdn.alpinelinux.org/alpine/edge/community
我自己一直遇到一些麻烦,长话短说,我会鼓励你问这是否真的值得麻烦。当你开始在堆栈中添加像pandas,gpus和scipy这样的东西时Numpy是巨大的,所以在高山上构建它的好处是有限的,当你的500GB空间开启时,使用Debian,Arch甚至Ubuntu的节省相对适中无论如何这个图书馆。
话虽如此,我把一张图片拼凑起来。我需要构建时依赖项musl-dev,linux-headers和g ++。我还需要从堆栈中添加openblas以便稍后在堆栈中添加某些内容,因此可能还需要一些依赖项。但我相信只需添加三个以前的库
apk --no-cache add musl-dev linux-headers g++
应该足以防止你得到的gcc错误。您可以在https://hub.docker.com/r/o76923/alpine-numpy-stack/上查看图像
试试这个:
RUN apk --no-cache --update-cache add gcc gfortran python python-dev py-pip build-base wget freetype-dev libpng-dev openblas-dev
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h
RUN pip install pandas
根据我的docker images
,这个大概是311MB:
FROM python:3.6-alpine
RUN apk add g++
RUN pip install numpy
(同时python:3.6
本身约900MB)
你试过没有安装gcc吗?可能有冲突吗?不确定。这个对我来说是一个最小的numpy安装,并希望分享。