gunicorn 报错 failed to load application
目录结构:
/application
├── app
│ ├── admin
│ │ ├── __init__.py
│ ├── api
│ │ ├── __init__.py
│ ├── exceptions.py
│ ├── home
│ │ ├── __init__.py
│ ├── __init__.py
│ ├── main
│ │ ├── errors.py
│ │ ├── __init__.py
│ │ └── views.py
│ ├── models.py
│ ├── shop
│ │ ├── __init__.py
│ └── views
│ ├── base_layout.html
│ ├── index.html
│ ├── password.html
│ └── pc.html
├── config.py
├── gunicorn.py -- 没用
├── wsgi.py
wsgi.py 代码如下
# file: wsgi.py
from app import create_app
if __name__ == '__main__':
app = create_app('production')
app.run()
所在目录: ~/application
执行: gunicorn -b :8080 wsgi
报错:Failed to find application: 'wsgi'
但是,如果执行:gunicorn -b :8080 "app:create_app('production')"
就没问题,正常执行……
why ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自问自答:
启动:
./venv/bin/gunicorn -b :8080 wsgi:app
wsgi后跟
app
是自定义的应用容器变量名称另:
度娘说可以不单独新建一个特殊的文件供gunicorn使用,但是看实际情况吧。
新建一个独立的文件其实更利于部署、调试和开发。
假设:
1.本地开发
独立文件:local.py
2.线上部署:
独立文件: gunicorn.py
启动文件拆分更利于开发,而且对系统的侵入性更小,应用只暴露一个
create_app
给启动配置文件即可。