【问题标题】:How to install and use numpy python package in docker container如何在 docker 容器中安装和使用 numpy python 包
【发布时间】:2020-01-12 04:14:24
【问题描述】:

我正在构建一个 docker 映像,它假设运行一个依赖于我在构建期间安装的一些包 (numpy) 的 python 脚本。 在构建过程中,一切似乎都已正确安装,但是当我运行容器时,它的行为就像从未安装过这些软件包一样。我的代码似乎有什么问题?

我的 docker 文件如下所示:

FROM myimage as intermediate

WORKDIR ./app

COPY ./mathServer ./mathServer/

RUN apt-get update

RUN apt-get install sudo 

RUN sudo apt-get install python3-pip -y

RUN sudo pip3 install numpy 

RUN sudo pip3 install httpserver 

RUN pip3 list

WORKDIR ./app

COPY --from=intermediate ./app/* ./

CMD ["sh","-c","python3 mathServer/mathServer.py"]

我希望 docker run myimage 能够成功运行 mathServer.py 但它却抱怨 numpy 包。 “importError:没有名为‘numpy’的模块” 此外,如果我用命令“pip3 list”替换命令“python3 mathServer/mathServer.py”,pip3 命令不存在。当我实际运行容器时,不知何故在构建期间安装的软件包不可用。

【问题讨论】:

  • this 可能有帮助

标签: python numpy docker


【解决方案1】:

请检查您的 docker 构建日志。 Numpy 请求 c 编译器和 fortran 编译器构建和安装。很可能安装不成功。

考虑尝试预构建 docker,例如 https://hub.docker.com/r/continuumio/miniconda/,并通过 RUN <PATH_TO>/conda install numpy -y 添加 numpy

或者已经安装了numpyhttps://hub.docker.com/r/continuumio/anaconda3

【讨论】:

  • 感谢您的回复。与其他软件包一起安装似乎很好,在构建过程中没有错误。这是已安装软件包 pip3 list 的结果:httpserver (1.1.0) keyrings.alt (1.3) numpy (1.17.2) pip (9.0.1) 但是当我运行容器时“pip3 list”不起作用使用 CMD [..]。我认为这也是为什么 numpy 不可见的原因。
  • 所以这是我的 docker 文件中的一个错误,我最后的说明 WORKDIR ./app COPY --from=intermediate ./app/* ./ 覆盖了 numpy 安装所以你是对的:) 到我运行容器 numpy 的时候还没有安装
  • 哈哈,这很简单,不过,基于 conda/miniconda 的 docker 值得一试。至少更一致。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 2017-03-26
  • 2017-11-11
  • 2016-09-18
  • 1970-01-01
相关资源
最近更新 更多