Gunicorn import error: url_for not found in flask, but native flask run works fine
我可以使用flask的内置web服务器命令run()运行flask应用程序,但在尝试使用gunicorn运行应用程序时,收到以下导入错误。我使用主文件夹中的gunicorn project.app:app命令。
从views.py中抛出的错误是:
1 | from app import db, url_for ImportError: cannot import name url_for |
我的应用程序组织如下:
1 2 3 4 5 6 7 8 | mainfolder/ Procfile bin project/ app.py _config.py views.py run.py |
号
Py
1 2 3 4 | from views import app import os port = int(os.environ.get('PORT', 5000)) app.run(host='0.0.0.0', port=port) |
App.Py
1 2 3 4 5 6 7 8 9 10 11 12 13 | from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy import os app = Flask(__name__) app.config.from_pyfile('_config.py') db = SQLAlchemy(app) app.config['SECRET_KEY'], report_errors=False) from views import * if __name__ == '__main__': port = int(os.environ.get('PORT', 5000)) app.run(host='0.0.0.0', port=port) |
。
_配置PY
1 2 | import os #All the app's keys |
程序文件
1 2 3 4 5 | #this works fine web: python project/run.py #this doesn't work web: gunicorn project.app:app |
。
python project/app.py运行应用程序很好,那么为什么gunicorn project.app:app抛出模块importError?
你的url输入需要在
您的应用程序正在Flask的服务器上工作,因为在
1 2 | if __name__ == '__main__': app.run(host='0.0.0.0', port=port) |
声明。gunicorn正在为导入url_之前获取应用程序。