以下是我的错误日志中出现的内容:
[Sat Nov 17 23:13:14 2012] [warn] mod_wsgi: Compiled for Python/2.7.3.
[Sat Nov 17 23:13:14 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
如果我检查我的 $PATH 变量,即使在 /etc/paths 中,/usr/local/bin(包含 Python 2.7.3)也位于 /usr/bin(包含 Python 2.7.2)之前。
我是否错过了其他路径?如何才能使用正确的运行时?
答案1
我能够确定使用旧运行时的原因。
快速修复方法是将 /usr/bin/python(最初为 2.7.2)符号链接到 /usr/local/bin/python,其中较新版本的 Python 使 /usr/bin/python 也为 2.7.3。重新启动 Apache 后,使用的是 2.7.3,这意味着 /usr 以某种方式被使用而不是 /usr/local。但是,我不想坚持使用此解决方案,所以我删除了符号链接。
经过进一步挖掘,我查看了 apachectl 脚本,并确定它正在从 /usr/sbin/envvars 加载 Apache 的环境变量
我修改了 envvars 文件的以下行以包含 /usr/local/lib,然后重新启动了 Apache。它加载了 Python 2.7.3(从而解决了我在使用 Django 时遇到的 _uname 问题,该问题是由 2.7.2/2.7.3 差异引起的)
DYLD_LIBRARY_PATH="/usr/local/lib:/usr/lib:$DYLD_LIBRARY_PATH"