python - Gunicorn 导入错误 : url_for not found in flask, 但 native Flask 运行正常

标签 python heroku flask gunicorn

我可以使用 Flask 的内置 Web 服务器命令 run() 正常运行 Flask 应用程序,但在尝试使用 Gunicorn 运行我的应用程序时收到以下导入错误。我使用主文件夹中的命令gunicorn project.app:app。

views.py 抛出的错误是:

from app import db, url_for ImportError: cannot import name url_for

我的应用程序的组织方式如下:

mainfolder/
    Procfile
    bin
    project/
        app.py
        _config.py
        views.py
        run.py

run.py

from views import app
import os
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)

app.py

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)

_config.py

import os
#All the app's keys

Proc文件

#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 会抛出模块导入错误?

最佳答案

您对 url_for 的导入需要在 app = Flask(__name__)

之前进行

您的应用程序正在 Flask 的服务器上运行,因为 url_for 是在之前导入的

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=port)

声明。 Gunicorn 会在您导入 url_for 之前获取应用程序。

关于python - Gunicorn 导入错误 : url_for not found in flask, 但 native Flask 运行正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32163474/

相关文章:

python - 为什么 Flask 应用程序运行但浏览器未加载页面?

python - 获取CSRF-Token并赋值给变量

python - Django 模型抽象基类 - 它们可以跨应用程序扩展吗?

python - 权限错误 : [Errno 13] Permission denied: 'emails2/Train'

node.js - 以编程方式获取剩余的免费动力时间

ruby-on-rails - Heroku 推送错误 Assets 预编译端口错误

heroku - 在 heroku 中使用本地包 Revel 应用程序

python - tf.keras.model 的 add_loss 方法的文档

python - 如何让 Actor 从屏幕右侧滑出,然后重置回左侧

node.js - 我们可以使用 Flask 渲染 .ejs 文件吗?