Flask + uwsgi + nginx:TypeError:...不带参数(给定2个)

时间:2013-02-13 06:08:24

标签: python nginx flask uwsgi

我在我的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文件中尝试过,但我也遇到了错误。

我希望有人可以帮助我。 :\

1 个答案:

答案 0 :(得分:4)

“application”是一个可调用的(由你定义)不是WSGI可调用的(就像你在uWSGI中配置的那样)。您的WSGI可调用是“app”(主要入口点)。只需将 - 可调应用程序更改为--callable app

即可