Docker Flask ModuleNotFoundError: Нет модуля с именем 'flask' - PullRequest
0 голосов
/ 02 октября 2018

Я получаю следующую ошибку при выполнении

docker-compose up --build

web_1  | Traceback (most recent call last):
web_1  |   File "glm-plotter.py", line 4, in <module>
web_1  |     from flask import Flask, render_template, request, session
web_1  | ModuleNotFoundError: No module named 'flask'
glm-plotter_web_1 exited with code 1

Я попытался изменить «Колбу» на «Колбу»в файле needs.txt

Dockerfile

FROM continuumio/miniconda3
RUN apt-get update && apt-get install -y python3
RUN apt-get install -y python3-pip
RUN apt-get install -y build-essential

COPY requirements.txt /
RUN pip3 install --trusted-host pypi.python.org -r /requirements.txt

ADD ./glm-plotter /code
WORKDIR /code
RUN ls .
CMD ["python3", "glm-plotter.py"]

docker-compose.yml

version: "3"
services:
  web:
    volumes:
      - ~/.aws:/root/.aws
    build: .
    ports:
      - "5000:5000"

needs.txt

click==6.6
Flask==0.11.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
numpy==1.11.1
pandas==0.18.1
python-dateutil==2.5.3
pytz==2016.4
six==1.10.0
Werkzeug==0.11.10

glm-plotter.py

from flask import Flask, render_template, request, session
import os, json
import GLMparser
...

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Если вы используете образ miniconda, вам необходимо создать новую среду и активировать ее перед установкой пакетов и запустить программу в файле Docker.Что-то вроде:

FROM continuumio/miniconda3
RUN apt-get update && apt-get install -y python3
RUN apt-get install -y python3-pip
RUN apt-get install -y build-essential

COPY requirements.txt /
RUN ["conda", "create", "-n", "myenv", "python=3.4"]

RUN /bin/bash -c "source activate myenv  && pip install --trusted-host pypi.python.org -r /requirements.txt"

ADD ./glm-plotter /code
WORKDIR /code
RUN ls .
CMD /bin/bash -c "source activate myenv && python glm-plotter.py"
0 голосов
/ 02 октября 2018

Я создал Docker, и он прекрасно компилируется.Возможно, вы захотите адаптировать его к вашим личным потребностям и добавить последние несколько строк из вашего Dockerfile выше:

FROM library/python:3.6-stretch

COPY requirements.txt /
RUN pip install -r /requirements.txt

Обратите внимание, что в изображениях library/python нет явного номера версии для python илиpip требуется, поскольку установлен только один.

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