2

我已经用 uwsgi 和 python 配置了我的 nginx 服务器,当我尝试通过在浏览器中点击 url 来运行我的 python 应用程序时,浏览器返回消息,uwsgi error python application not found。

这是我的 uwsgi 日志的样子:

*** Starting uWSGI 1.0.4 (32bit) on [Tue Jul 31 15:25:04 2012] ***
compiled with version: 4.6.3 on 27 July 2012 17:02:36
current working directory: /home/paul/Desktop/x/studio
detected binary path: /home/paul/Desktop/x/studio/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
*** WARNING: you are running uWSGI without its master process manager ***
your memory page size is 4096 bytes
probably another instance of uWSGI is running on the same address.
bind(): Address already in use [socket.c line 598]
[pid: 3868|app: -1|req: -1/11] 127.0.0.1 () {38 vars in 911 bytes} [Tue Jul 31 15:25:22      2012] GET /ai?api=%3CIron%3E%3CAction%3E%3CService%3EUserAuth%3C/Service%3E%3CUsername%3Eadmin%3C/Username%3E%3CPassword%3Eadmin%3C/Password%3E%3C/Action%3E%3C/Iron%3E => generated 48 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0)
[pid: 3864|app: -1|req: -1/12] 127.0.0.1 () {38 vars in 655 bytes} [Tue Jul 31 15:25:34 2012] GET /ai?api=%3CIron%3E%3C/Iron%3E => generated 48 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0)
[pid: 3864|app: -1|req: -1/13] 127.0.0.1 () {38 vars in 655 bytes} [Tue Jul 31 15:25:38  2012] GET /ai?api=%3CIron%3E%3C/Iron%3E => generated 48 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0)
[pid: 3864|app: -1|req: -1/14] 127.0.0.1 () {38 vars in 655 bytes} [Tue Jul 31 15:25:48 2012] GET /ai?api=%3CIron%3E%3C/Iron%3E => generated 48 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0)
[pid: 3868|app: -1|req: -1/15] 127.0.0.1 () {38 vars in 655 bytes} [Tue Jul 31 15:26:11 2012] GET /ai?api=%3CIron%3E%3C/Iron%3E => generated 48 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0)

uwsgi 和 nginx 是从我的 virtualenv root 调用的

bin/uwsgi -p 2 --socket  127.0.0.1:8807 --module index --pythonpath ironjob/ai -d log/uwsgi_ai.log
bin/nginx -p ./ -c ironjob/etcs/production/nginx.conf

~

这是我的 nginx.conf 文件

server {
    listen      8090;
    server_name example.com;
    charset     utf-8;

    # Django admin media.
    location /media/admin/ {
      alias lib/python2.6/site-packages/django/contrib/admin/media/;
    }
    # Your project's static media.
    location /media/ {
      alias PROJECT_ROOT/media/;
    }

    # Finally, send all non-media requests to the Django server.
   location /ai {
      uwsgi_pass  127.0.0.1:8807;
      include     uwsgi_params;
    }
  }

以及包含可调用应用程序的 $VIRTUVAL_ENV/ironjob/ai/index.py 文件:

import os
import sys
from webob import Response
from cgi import parse_qs, escape
import urllib

from ironMainManager import MainManager

os.environ['PYTHONJ_EGG_CACHE'] = '$VIRTUAL_ENV/bin/.python-egg'

def application(environ , start_response):
    mManager = MainManager()
    parameters = parse_qs(environ.get('QUERY_STRING', ''))
    returnval ="<Root></Root>"

    if 'api' in parameters:
        api = parameters['api'][0]
        if 'platform' in parameters:
                platform = parameters['platform'][0]
                if platform == 'browser':
                       api = urllib.unquote(str(parameters['api'][0]))
        print api
        returnval = mManager.process(api)
        output = 'success'
    else:
        output = 'error'

    res = Response()
    res.content_type = 'text/plain'
    res.body=str(returnval)
    return res(environ, start_response)
4

1 回答 1

3

看起来您已经运行了一个旧的 uWSGi 实例。确保杀死所有剩余的实例并重新启动 uWSGI。除此之外,尝试始终使用最新的稳定版(1.0 现在已经很老了)

于 2012-07-31T10:44:20.007 回答