Docker ModuleNotFoundError:没有名为';烧瓶盛满水';

Docker ModuleNotFoundError:没有名为';烧瓶盛满水';,docker,flask,flask-restful,Docker,Flask,Flask Restful,我已经试了一段时间了,运气不好。制作一个基本的api,但是在使用restful模块时遇到了一些问题。这是我的代码: import markdown import os import shelve from flask import Flask, g from flask_restful import Resource, Api, reqparse app = Flask(__name) @app.route("/") def index(): with open(os.path.dir

我已经试了一段时间了,运气不好。制作一个基本的api,但是在使用restful模块时遇到了一些问题。这是我的代码:

import markdown
import os
import shelve
from flask import Flask, g
from flask_restful import Resource, Api, reqparse

app = Flask(__name)
@app.route("/")
def index():
    with open(os.path.dirname(app.root_path) + 
            '/README.md', 'r') as markdown_file:
        content = markdown_file.read()
        return markdown.markdown(content)
这是my requirements.txt:

docker==3.4.1
docker-compose==1.22.0
docker-pycreds==0.3.0
dockerpty==0.4.1
docopt==0.6.2
Flask==1.0.2
Flask-RESTful==0.3.6
requests==2.18.4
urllib3==1.22
websocket-client==0.48.0
这是我在运行docker compose up时遇到的错误:

Starting python-rest_device-registry_1 ... done
Attaching to python-rest_device-registry_1
device-registry_1  | Traceback (most recent call last):
device-registry_1  |   File "./run.py", line 1, in <module>
device-registry_1  |     from device_registry import app
device-registry_1  |   File "/usr/src/app/device_registry/__init__.py", line 6, 
in <module>
device-registry_1  |     from flask_restful import Resource, Api, reqparse
device-registry_1  | ModuleNotFoundError: No module named 'flask_restful'
python-rest_device-registry_1 exited with code 1

我做错了什么?我安装了Flask和Flask\u restful,但我对正在发生的事情一无所知。

看起来您在这里显示的代码中没有使用
Flask\u restful
。你只是在导入它。可能您一开始只使用了一些flask代码,导入ok,然后将flask restful添加到需求文件中,但docker没有意识到这一点,并且它具有容器该部分的缓存版本


尝试解耦您的问题,从在docker外部运行python示例开始,在一个普通的旧virtualenv中运行,并确保启动。然后看看docker是如何安装您的新需求的。

您能分享您的docker文件吗?好的,编辑一下。太好了!成功了。所以导入了降价,因为它还没有安装,然后docker编写了构建,现在一切都正常了。非常感谢。在docker外部测试后,我发现了问题所在。
FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./run.py" ]