python - Python:使用 Docker 时无法导入模块“flask-RESTPlus”
问题描述
我使用 Docker 环境实现了一个小型 Flask 应用程序。
这是我的项目结构:
dockertest
├─ .vscode
│ └─ settings.json
├─ compose_flask
├─ Dockerfile
├─ app.py
├─ docker-compose.yml
└─ requirements.txt
这是Dockerfile:
FROM python:3.8.0
ADD . /code
WORKDIR /code
RUN pip3 install -r requirements.txt
RUN pip3 install Werkzeug==0.16.0
CMD python app.py
这是requirements.txt:
flask-restplus
flask
redis
这是docker-compose.yml:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
最后是我的app.py:
from flask import Flask
from redis import Redis
from flask_restplus import fields, Api, Resource
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
print(redis.incr('hits'))
return 'This Compose/Flask demo has been viewed %s time(s).' % redis.get('hits')
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
使用命令构建:build -t compose-flask:latest .
工作得很好!当我尝试使用 启动容器时docker-compose up
,出现以下错误消息:
redis_1 | 1:M 10 Mar 2020 23:10:05.011 * Ready to accept connections
web_1 | Traceback (most recent call last):
web_1 | File "app.py", line 4, in <module>
web_1 | from flask_restplus import fields, Api, Resource
web_1 | ImportError: No module named flask_restplus
compose_flask_web_1 exited with code 1
似乎 Python 无法找到 flask-RESTPlus 包?构建的控制台输出告诉我,flask-RESTPlus 已成功安装。奇怪的是,没有 Docker 的同一个例子工作得很好,没有任何导入错误!!
我无法弄清楚问题是什么......如果有人可以提供帮助,我会很高兴!
解决方案
推荐阅读
- java - 如何在 Java 中实现一个函数,该函数返回公司内部员工的层次结构
- android - 如何拥有具有相同 SHA-1 的不同 Android 应用程序
- flutter - Flutter:创建带有可选身体部位的 BodyMap Widget
- triggers - 即使我将触发器设置为手动,Dependabot 也会每天生成 PR
- c# - 重新抛出异常时的 StackTrace 行为 c#
- c# - 无法连接到 DB2:Azure 函数上的 IBM.Data.DB2.Core 版本 3.1.0.400
- likert - 调查行上的李克特量表
- angular - Ionic 5 使用媒体捕获插件和 aws sdk 将视频上传到 aws s3
- jmeter - 如何使用 JMeter 正确加载测试 JMS?
- reactjs - 我如何引用另一个反应组件?