我正在运行 django+nginx+uwsgi。出于某种原因,如果不设置 home 选项,我无法启动 uWSGI,指向虚拟环境。每当我在没有它的情况下启动 uWSGI 时,它都会说它找不到模块 django.core.wsgi,就像 python 路径为空一样(但系统范围内安装了 django 1.4)。
我该如何解决?
我正在运行 django+nginx+uwsgi。出于某种原因,如果不设置 home 选项,我无法启动 uWSGI,指向虚拟环境。每当我在没有它的情况下启动 uWSGI 时,它都会说它找不到模块 django.core.wsgi,就像 python 路径为空一样(但系统范围内安装了 django 1.4)。
我该如何解决?
由于我也遇到了这个问题,所以让我们为所有人写一个答案。:) 问题是,当以皇帝模式(系统范围)启动时,uwsgi 主进程不能(或不会)为 python(PYTHONPATH)加载正确的环境。使用 virtualenv 您指定环境。没有它,您需要设置pythonpath
变量,甚至多次指向系统范围的 python 路径。
举个例子,对于我的系统,它是:
pythonpath = /usr/local/lib/python2.7/dist-packages
pythonpath = /usr/lib/python2.7
(使用 ini 语法)