WSGIPythonPath和WSGIPythonHome是apache的python运行时模块mod_wsgi中定义的两个伪指令,初学django的朋友可能会弄不明白这两个伪指令的用途,下面介绍一下他们的用途及区别:
WSGIPythonPath用于指定python的搜索目录,其值是一系列的目录, 目录之间使用冒号(unix-like)或者分号(windows)分隔,例如/usr/local/path1:/usr/lcoal/path2或者D:\path1;D:\path2. 如果目录包含空格则整个值需要用双引号括起来,该伪指令相当于执行了python的site.addsitedir()函数,该函数的功能是在初始化python时首先执行sys.path.append(),然后再处理目录中的*.pth文件.当apache找不到你的django工程时(此时会报500错误)可以尝试用该伪指令手动指定django工程的路径(django初学者可以直接指定为manage.py文件所在的目录,这样mod_wsgi就可以找到你创建的django apps了), 如果不想设置该伪指令,你也可以在你的django工程中的wsgi.py文件中加上sys.path.append('/your/django/project/path'), 注意这里的path必须使用绝对路径.
WSGIPythonHome用于指定python解释器路径, 假如你的环境中有多个python解释器,你可以通过设置该伪指令的值来指定具体的python解释器,其值为sys.prefix或者sys.prefix:sys.exec_prefix,即当sys.prefix的值与sys.exec_prefix一致时可以省略:sys.exec_prefix(这两个值以冒号分隔). 如果该值没有被正确设置则可能会报500错误.
注意mod_wsgi和mod_python可能会发生冲突, django官方推荐使用较新的mod_wsgi模块来取代过时的mod_python