2012-08-13 52 views
5

我跑的Django +的nginx + uwsgi。出于某种原因,我无法启动uWSGI而没有设置主页选项,指向虚拟环境。每当我开始uWSGI没有它,它说,它无法找到模块django.core.wsgi,就像如果蟒蛇路径是空的(不过在Django 1.4安装系统范围内)。无法启动uWSGI服务器(导入错误)

我该如何解决?

+1

这没有什么错。您需要使用'home'选项来指定安装django的虚拟环境。否则,uwsgi将在没有安装django的系统级别上运行。看看[uwsgi示例](http://projects.unbit.it/uwsgi/wiki/VirtualEnv)。 – 2012-08-13 10:58:22

+1

@ TimmyO'Mahony如果你仔细看看我的问题,你可以看到,我提到django是安装在“系统范围内”的。 – DataGreed 2012-08-13 13:53:58

+0

我会编辑它以使其更清晰 – DataGreed 2012-08-13 13:54:24

回答

15

自从我打我的这个问题太头,让我们写的所有的答案。 :) 的问题是,在帝模式开始(系统宽)的情况下,主uwsgi过程不能(或不会)加载蟒(PYTHONPATH)正确ENVIRON。 使用virtualenv指定环境。 没有它,你需要设置pythonpath变量,甚至多次指向全系统的Python路径。

只是作为一个例子,我的系统是:

pythonpath = /usr/local/lib/python2.7/dist-packages 
pythonpath = /usr/lib/python2.7 

(使用INI语法)

+0

我在MacOS系统中遇到这个错误,但在具有相同配置文件的centos6中没有遇到此错误。在配置文件中添加'virtualenv'后修复它。你能解释这种情况吗?运行命令是'/ path_to_venv/bin/uwsgi -y uwsgi.conf' – 2017-09-20 06:37:03

+0

@SiminJie对不起,我不使用MacOS。我不会将它用作服务器。 – 2017-09-20 08:08:24