Docker: ImportError: нет модуля с именем pandas - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь работать с кодом в этом репозитории GitHub для обработки наборов данных из новостных статей. Я следую инструкциям по установке докера и первые два выполняются без ошибок.

Однако, с третьим, 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, поэтому я предполагаю, что это должно быть установка панд, но я понятия не имею, что еще делать!

Я нашел эту проблему похожей на мою, но на самом деле я ничего не понимаю ясно. Должен ли я «войти в» докер, а затем выполнить установку pip вручную? Я не могу найти идентификатор контейнера с помощью этой команды docker ps -aqf "name=containername". Ничего не возвращает.

Я застрял на этом уже несколько дней и буду очень признателен за любую помощь, которую смогу получить.

1 Ответ

0 голосов
/ 18 ноября 2018

Проблема в том, что если вы запустите его так: docker run --rm -it -v ${PWD}:/usr/src/newsqa --name newsqa maluuba/newsqa python maluuba/newsqa/data_generator.py

bash никогда не войдет в картину, поэтому правильная версия среды Python никогда не будет выбрана (на самом деле, только Python будетработает, без оболочки).

Простое исправление - вызвать его так: docker run --rm -it -v ${PWD}:/usr/src/newsqa --name newsqa newsqa /bin/bash --login -c "python maluuba/newsqa/data_generator.py"

, который выполнит его через bash с опцией --login, также будет источником необходимогоокружающая среда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...