在 Docker Alpine 上安装 numpy

新手上路,请多包涵

我正在尝试在基于 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 给出相同的错误。

我缺少任何配置/安装步骤吗?

原文由 TDN169 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

如果您不需要从 pypi 安装 numpy ,您可以从 alpine 存储库安装它。包名为 py-numpy 并且位于 testing 存储库中,请参见 此处。最小 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

原文由 ziky 发布,翻译遵循 CC BY-SA 4.0 许可协议

我自己在这方面遇到了一些麻烦,长话短说,我鼓励你问问这是否真的值得麻烦。当您开始向堆栈添加诸如 pandas、gpus 和 scipy 之类的东西时,Numpy 是巨大的,因此在 alpine 上构建它的好处是有限的,当您的空间为 500MB 时,使用 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/ 查看图像

原文由 James Endicott 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题