首页 > 解决方案 > 在 Docker 运行命令中找不到 Pandas [附加卷]

问题描述

当我构建我的 docker 映像并使用以下命令运行它时:

docker build -t iter1 .

docker run -it --rm --name iter1_run iter1

我的应用程序运行得很好。但是,当我尝试附加卷并执行以下命令时:

docker run -it --rm --name iter_run -v /Users/xxxx/Desktop/Docker_Builds/SingleDocker/xxxxxx:/usr/src/oce -w /usr/src/oce python:3 python oce_test.py

文件 oce_test.py 找不到 Pandas。

Traceback (most recent call last):
  File "oce_test.py", line 1, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

我的 Dockerfile 的内容如下:

# Docker image
FROM python:3

# Copy requirements
COPY requirements.txt /

# Install Requirements
RUN pip install -r /requirements.txt

# Copy scripts needed for execution
COPY ./xxxx /usr/src/oce

# Establish a working directory
WORKDIR /usr/src/oce

# Execute required script
CMD ["python", "oce_test.py"]

我的requirements.txt的内容如下:

numpy==1.18.1
pandas==1.0.1
matplotlib==3.1.3
scipy==1.4.1
Python-dateutil==2.8.1

标签: dockerdockerfiledocker-volume

解决方案


David Maze 回答了这个问题:

您的 docker run 命令正在运行一个没有安装其他软件包的普通 python:3 映像。如果您想使用 Dockerfile 中的映像,但要使用主机中的任意内容覆盖映像中的应用程序代码,请改用您的映像名称 iter1。(您不需要重复图像的 WORKDIR 或 CMD 作为 docker run 选项。)


推荐阅读