所以这似乎是这个设置的一个真正常见的问题,但我找不到任何解决方案在SO上工作。我已经安装了一个非常新的Ubuntu 15.04服务器,然后安装了nginx,virtualenv(和-wrapper)和uWSGI(通过apt-get,所以在全球范围内,不在virtualenv中)。uWSGI + virtualenv'No module named site'
我的virtualenv位于/root/Env/example
。里面的virtualenv,我安装的Django,然后在/ SRV /网络/例子/应用程序运行与项目名称example
Django的startproject
命令,所以我有隐约这种结构:
-root
-Env
-example
-bin
-lib
-srv
-www
-example
-app
-example
manage.py
-example
wsgi.py
...
我对uWSGI example.ini文件看起来是这样的:
[uwsgi]
project = example
plugin = python
chdir = /srv/www/example/app/example
home = /root/Env/example
module = example.wsgi:application
master = true
processes = 5
socket = /run/uwsgi/app/example/example.socket
chmod-socket = 664
uid = www-data
gid = www-data
vacuum = true
但无论我是否通过uwsgi --ini /etc/uwsgi/apps-enabled/example.ini
或通过后台程序运行它,我得到确切的同样的错误:
Python version: 2.7.9 (default, Apr 2 2015, 15:37:21) [GCC 4.9.2]
Set PythonHome to /root/Env/example
ImportError: No module named site
我应该注意到,Django项目通过内置的开发服务器./manage.py runserver
工作,并且当我删除home = /root/Env/example
时,这个东西可以工作(但显然使用全局Python和Django而不是virtualenv版本,这意味着它对于一个适当的virtualenv设置)。
任何人都可以看到一些明显的路径错误,我没有看到?据我所知,home
是完全正确的,基于我的目录结构以及ini中的其他所有内容,那么为什么它不适用于此ImportError?
是否已解决? –