当前位置: 首页>>技术教程>>正文


ubuntu + nginx + uwsgi + django未找到Python应用程序

, , ,

问题描述

我正在尝试使用nginx到uwsgi到django堆栈的服务器设置服务器,但是我在uwsgi部分遇到了问题。

当我运行uwsgi并在命令行中传递所有参数时,它可以正常工作。我的uwsgi呼叫看起来像这样:

uwsgi --socket /tmp/uwsgi.sock --chdir ~/web/test.com --wsgi-file ~/web/test.com/store/wsgi.py --virtualenv ~/web/test.com/testenv --chmod-socket=666 --enable-threads

然后,我将这些参数复制到一个如下所示的ini文件中:

# django.ini file
[uwsgi]
master          = true 
socket          = /tmp/uwsgi.sock
chmod-socket    = 666
chdir           = /home/ubuntu/web/test.com
wsgi_file       = /home/ubuntu/web/test.com/store/wsgi.py
virtualenv      = /home/ubuntu/web/test.com/causumptionenv
vacuum          = true
enable-threads  = true

但是,当我使用django.ini文件运行uwsgi时,将得到此输出。

[uWSGI] getting INI configuration from django.ini
*** Starting uWSGI 1.9.11 (64bit) on [Fri May 31 14:52:44 2013] ***
compiled with version: 4.6.3 on 30 May 2013 15:40:11
os: Linux-3.2.0-40-virtual #64-Ubuntu SMP Mon Mar 25 21:42:18 UTC 2013
nodename: ip-10-245-64-211
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/ubuntu/web/test.com
detected binary path: /usr/local/bin/uwsgi
your processes number limit is 4594
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 3
Python version: 2.7.3 (default, Aug  1 2012, 05:25:23)  [GCC 4.6.3]
Set PythonHome to /home/ubuntu/web/test.com/testenv
Python main interpreter initialized at 0xcb4dd0
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145440 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 15976)
spawned uWSGI worker 1 (pid: 15977, cores: 1)
--- no python application found, check your startup logs for errors ---

最值得注意的是“未加载应用程序。以完全动态模式运行且未找到python应用程序的行,请检查启动日志中是否有错误

所以我的问题是,在命令行上传递参数与通过ini文件传递参数之间有什么区别?

最佳思路

它是wsgi-file而不是wsgi_file,命令行选项和文件选项始终相同

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10850.html,未经允许,请勿转载。