我正在尝试在 Gunicorn 服务器上引导 Flask 应用程序。通过将这两个工具的文档放在一起,再加上在 SO 上进行搜索,这就是我到目前为止所拥有的......但它并不完全有效。
应用程序.py:
from flask import Flask, render_template
from flask.ext.sqlalchemy import SQLAlchemy
from werkzeug.contrib.fixers import ProxyFix
app = Flask(__name__)
app.wsgi_app = ProxyFix(app.wsgi_app)
db = SQLAlchemy(app)
@app.route('/')
def index():
return render_template('index.html')
我跑了什么:
从与 app.py 相同的目录中,
gunicorn app:app
即使从这么小的开始,我也错过了一些东西。错误消息不是很有帮助:
2013-09-12 20:13:07 [11461] [INFO] 开始 gunicorn 0.14.5
2013-09-12 20:13:07 [11461] [INFO] 收听:http://127.0.0.1:8000
(11461)
2013-09-12 20: 13:07 [11461] [INFO] 使用工作者:同步
2013-09-12 20:13:07 [11528] [INFO] 使用 pid 引导工作者:11528
2013-09-12 20:13:07 [11528] [INFO ] Worker 退出(pid:11528)
2013-09-12 20:13:08 [11461] [INFO] 关闭:Master
2013-09-12 20:13:08 [11461] [INFO] 原因:Worker 无法启动.
顺便说一句,我在 Debian Linux 系统上运行它。非常感谢您的帮助!
更新
打开调试后,我收到了一些更具指导性的错误消息。这很快就变成了一个非常具体的问题:ImportError: No module named flask
. 通常当我不使用我的 virtualenv 时,我会遇到这种错误——但我是。经过仔细检查,Gunicorn 似乎使用的 Python 版本与我的 virtualenv 使用的不同,即 Python3。所以......我的特定python似乎没有被使用。我该如何解决这个问题,并告诉 Gunicorn 使用正确的 Python?