2016-04-24 58 views
0

我试图用uwsgi + pypy + flask来部署网站。有如下uwsgi错误信息失败:uwsgi + pypy“没有应用程序加载”错误

*** no app loaded. GAME OVER *** 

我的环境和脚本是:

$ uname -a 
Linux xxxxx 3.13.0-32-generiC#57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linux 

$ pypy --version 
Python 2.7.10 (3360adbeba4a, Apr 19 2016, 13:27:10) 
[PyPy 5.1.0 with GCC 4.6.3] 

$ uwsgi --version 
1.9.17.1-debian 

Note: the uwsgi is installed with pip in pypy virtualenv 

flasktest.py:

from flask import Flask 

application = Flask(__name__) 

@application.route("/") 
def hello(): 
    return "Hello!" 

的命令来运行网站

$ uwsgi --chmod-socket=777 \ 
--chdir /path/mysite --pypy-wsgi flasktest \ 
--master --socket 127.0.0.1:8000 --need-app 

任何人都有任何想法哪部分我做错了?

回答

0

http://flask.pocoo.org/docs/0.10/deploying/uwsgi/

请务必提前任何app.run()调用你可能在你的 应用程序文件都在里面了,如果 ==“主要”:块 或转移到一个单独的文件。只要确保它没有被调用,因为 这将始终启动本地WSGI服务器,我们不希望如果我们 将该应用程序部署到uWSGI。

启动您的应用uwsgi

uwsgi被设计为在Python模块发现WSGI可调用运行。

鉴于myapp.py烧瓶中的应用程序,请使用以下命令:

$ uwsgi -s /tmp/uwsgi.sock --module myapp --callable app 

或者,如果你喜欢:

$ uwsgi -s /tmp/uwsgi.sock -w myapp:app 

的例子:

from flask import Flask 
application = Flask(__name__) 

@application.route("/") 
def hello(): 
    return "<h1 style='color:blue'>Hello There!</h1>" 

if __name__ == "__main__": 
    application.run(host='0.0.0.0') 
+0

感谢回复但仍无法使用。因为我使用pypy,所以'-w'这个参数的意思是'--pypy-wsgi',不是吗? – tantrumiok

相关问题