我正试图在Gunicorn服务器上引导一个Flask应用程序。通过把这两个工具的文档放在一起,再在上面搜索,这就是我到目前为止.但效果不太好。
app.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启动 2013-09-12 20:13:07 11461收听:
http://127.0.0.1:8000(11461) 2013-09-12 20:13:07 11461使用工人:同步 2013-09-12 20:13:13:07 11528启动工人pid: 11528 2013年-09-12 20:13:07 11528工人退出(pid: 11528) 2013-09-12 20:13:08 11461关机:师父 2013-09-12 20:13:08 11461原因:工人开机失败.
顺便说一下,我正在Debian系统上运行这个程序。非常感谢您的帮助!
更新
在启动调试之后,我得到了一些更有指导意义的错误消息。这已经很快成为一个非常具体的问题:ImportError: No module named flask。通常,当我没有使用我的虚拟主机时,我会遇到这样的错误--但是我是。仔细观察一下,Gunicorn似乎使用了不同于我的虚拟版本的Python版本,即Python3。所以..。我特别喜欢的蟒蛇似乎没有被使用。我如何解决这个问题,并告诉Gunicorn使用正确的Python?
发布于 2013-09-13 01:40:05
gunicorn实用程序可能是从系统路径中跑出来的,而不是您的虚拟设备。
确保将pip install gunicorn放入虚拟环境中。
下面是我为运行您的应用程序而设置的虚拟主机的pip冻结:
(so_2)20:38:25 ~/code/tmp/flask_so$ pip freeze
Flask==0.10.1
Flask-SQLAlchemy==1.0
Jinja2==2.7.1
MarkupSafe==0.18
SQLAlchemy==0.8.2
Werkzeug==0.9.4
gunicorn==18.0
itsdangerous==0.23
wsgiref==0.1.2实际上,我只运行了以下pip install:
$ pip install flask
$ pip install gunicorn
$ pip install Flask-SQLAlchemy发布于 2013-10-19 23:46:07
我和你有同样的问题。问题是,由于某种原因,gunicorn在虚拟env之外加载环境。我的解决办法是在虚拟环境之外卸载这个包;
(env) $ deactivate
$ sudo pip uninstall gunicorn所以你回到你的副官,试着逃跑。在我的例子中,我输入了env文件夹:
$ source env/bin/activate
(env) $ pip install gunicorn
(env) $ gunicorn server:app
2013-10-19 20:40:56 [11923] [INFO] Starting gunicorn 18.0
2013-10-19 20:40:56 [11923] [INFO] Listening at: http://127.0.0.1:8000 (11923)
2013-10-19 20:40:56 [11923] [INFO] Using worker: sync
2013-10-19 20:40:56 [11926] [INFO] Booting worker with pid: 11926发布于 2017-08-31 06:09:27
Gunicorn可能安装在您的系统中的多个位置。它可能存在于
默认情况下,当指定
gunicorn -w 4 -b 127.0.0.1:5000 flaskApp:app
您正在引用操作系统的默认Python,在相同路径中,没有安装烧瓶包会导致错误。最好通过提供正确的路径来指定你要去的是哪一只枪角。
/home/sunil/anaconda2/bin/gunicorn -w 4 -b 127.0.0.1:5000 flaskApp:app
https://stackoverflow.com/questions/18776745
复制相似问题