【问题标题】:Docker: ImportError: No module named pandasDocker:ImportError:没有名为 pandas 的模块
【发布时间】:2018-11-18 17:06:53
【问题描述】:

我正在尝试处理 this GitHub repository 中的代码来处理来自新闻文章的数据集。我正在按照他们的 docker 安装步骤操作,前两个执行没有任何错误。

但是,对于第三个,docker run --rm -it -v ${PWD}:/usr/src/newsqa --name newsqa maluuba/newsqa python maluuba/newsqa/data_generator.py, 我收到以下错误:

Traceback (most recent call last):
  File "maluuba/newsqa/data_generator.py", line 8, in <module>
    from simplify import simplify
  File "/usr/src/newsqa/maluuba/newsqa/simplify.py", line 5, in <module>
    import pandas as pd
ImportError: No module named pandas

这是 Dockerfile 的一部分:

FROM continuumio/miniconda:4.5.11

# Setup the Python environment.
RUN conda create --yes --name newsqa python=2.7 "pandas>=0.19.2" cython
RUN echo "conda activate newsqa" >> ~/.bashrc

WORKDIR /usr/src/newsqa
COPY requirements.txt ./
RUN /bin/bash --login -c "conda list && yes | pip install --requirement requirements.txt"

我以前从未使用过 Docker,所以我假设这应该是安装 pandas,但我不知道还能做什么!

我发现this issue 与我的相似,但我并没有真正清楚地理解任何事情。我应该“进入”码头,然后手动进行 pip 安装吗?我无法使用此命令 docker ps -aqf "name=containername" 找到容器 ID。它什么也不返回。

我已经为此困扰了好几天,如果我能得到任何帮助,我将不胜感激。

【问题讨论】:

  • Docker 不是终端,不运行 bash,因此在命令前没有.bashrc

标签: python pandas docker


【解决方案1】:

问题是,如果你这样运行它: docker run --rm -it -v ${PWD}:/usr/src/newsqa --name newsqa maluuba/newsqa python maluuba/newsqa/data_generator.py

bash 永远不会进入画面,因此永远不会选择正确版本的 Python 环境(事实上,只有 Python 会运行,根本没有 shell)。

一个简单的解决方法是像这样调用它: docker run --rm -it -v ${PWD}:/usr/src/newsqa --name newsqa newsqa /bin/bash --login -c "python maluuba/newsqa/data_generator.py"

它将通过带有--login 选项的bash 执行它,也将获取必要的环境。

【讨论】:

  • 解决了这个问题!非常感谢。
猜你喜欢
  • 2016-02-02
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
  • 2016-11-17
  • 2016-05-06
  • 2018-04-13
  • 2021-02-06
  • 2020-09-02
相关资源
最近更新 更多