我在我的ubuntu 12.04 homerserver上安装了带有nginx的uwsgi并尝试测试一个简单的Flask-App:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def application():
return 'Hello World!'
if __name__ == '__main__':
app.run()
python app.py
它有效。
但不是uwsgi --socket 127.0.0.1:3031 --file /srv/www/test/app.py --callable application --catch-exceptions
我刚收到此错误TypeError: application() takes no arguments (2 given)
并且不知道原因。这两个论点来自哪里?
这是我的uwsgi.conf:
1 description "uWSGI Emperor"
2 start on runlevel [2345]
3 stop on runlevel [06]
4 respawn
5
6 exec uwsgi --master --die-on-term --emperor /etc/uwsgi/apps-enabled
和我的nginx.conf
server {
94 listen 8000;
95 server_name localhost;
96 root /srv/www/test;
97
98 location /static/ {
99 alias /srv/www/test/static/;
100 expires 30d;
101 access_log off;
102 }
103
104 location / {
105 include uwsgi_params;
106 uwsgi_pass 127.0.0.1:3031;
107 }
108 }
我之前在启用了应用程序的.ini文件中尝试过,但我也遇到了错误。
我希望有人可以帮助我。 :\
答案 0 :(得分:4)
“application”是一个可调用的(由你定义)不是WSGI可调用的(就像你在uWSGI中配置的那样)。您的WSGI可调用是“app”(主要入口点)。只需将 - 可调应用程序更改为--callable app
即可