用Gunicorn 运行flask,提示no module named app

发布于 2022-09-11 18:38:09 字数 712 浏览 28 评论 0

flask项目本身用开发服务器已经可以运行,但是当用gunicorn下列命令运行:

gunicorn -w 4 -b 127.0.0.1:8004 app:app

或者

gunicorn -w 4 -b 127.0.0.1:8004 route:app

就会提示 ImportError: No module named 'app'

我的结构目录如下

app
    │  config.py
    │  data.db
    │  forms.py
    │  models.py
    │  mulu.txt
    │  route.py
    │  __init__.py
    │  templates
    |  static
    

其中app定义在__init__.py中

from flask import Flask
app = Flask(__name__)

route.py

from app import app
@app.route('/')
def hello_world():
    return 'hello world'
    
if __name__ == '__main__':
    app.run()

求解?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

再可℃爱ぅ一点好了 2022-09-18 18:38:09

切到父目录,即app的同级目录,运行gunicorn -w 4 -b 127.0.0.1:8004 app:app即可。

原因:gunicorn的参数为<文件名>:<app实例名>,而在app目录下,是找不到app模块自己的。

゛清羽墨安 2022-09-18 18:38:09
gunicorn -w 4 -b 127.0.0.1:8004 wsgi:application

wsgi:application 参数理解分两部分:
wsgi 是引导用的 python 文件名(不含后缀)
application 是 Flask 实例名称。

# wsgi.py

from flask import Flask

def create_app():
  app = Flask(__name__)
  return app

application = create_app()

if __name__ == '__main__':
    application.run()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文