我正在尝试处理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与我的相似,但是我并不清楚。我应该“进入” docker ,然后手动安装pip吗?我无法使用此命令
docker ps -aqf "name=containername"
找到容器ID。它什么也不返回。我已经在此问题上停留了好几天了,非常感谢我能提供的任何帮助。
最佳答案
问题是,如果您像这样运行它: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执行它,还将提供必要的环境。