virtualenv中的环境变量使用mod_wsgi进行postactivate

时间:2013-05-22 19:42:08

标签: apache environment-variables mod-wsgi django-settings

希望你很好。

我在virtualenv postactivate文件中添加了几个环境变量,例如:

export DATABASE_USER="root"
export DATABASE_PASSWORD="12345678"

然后我使用os.environ ['DATABASE_USER']在settings.py中分配这些变量,例如

DATABASE_USER = os.environ['DATABASE_USER']

由于我的Apache虚拟主机文件包含

WSGIDaemonProcess mysite.local python-path=/my/python/path:/path/to/my/project/venv/lib/python2.7/site-packages
WSGIProcessGroup mysite.local
WSGIScriptAlias / /path/to/my/project/wsgi.py

据我了解,这告诉mod_wsgi以守护进程模式运行以及使用哪个virtualenv。既然它知道要使用哪个virtualenv,我会想象它会运行postactivate,从而启用我的环境变量,但事实并非如此。

我做错了吗?欢迎任何建议或建议。

1 个答案:

答案 0 :(得分:4)

使用该配置,所有mod_wsgi都在将virtualenv site-packages目录添加到sys.path中,仅此而已。

在使用mod_wsgi时,不能将其用作设置环境变量的地方,因为mod_wsgi从未以任何方式配置它。