WSGIPythonPath和WSGIPythonHome的区别

原创
2017/05/21 21:51
阅读数 1.6K

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

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部