我发现无法为 python 2.7 重新编译 mod_wsgi。
我正在使用 Flask 和 Flask-WTF 构建一个应用程序。它作为独立版本运行良好,但在 Apache 中会出现问题,因为我的 mac 上的 Apache 服务器正在使用 Python 2.6,即使默认情况下在 python 应用程序中安装并使用 2.7 也是如此。独立版使用2.7。
哪个 python 显示了这个:
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
otool -L mod_wsgi.so 显示了这一点:
mod_wsgi.so:
/System/Library/Frameworks/Python.framework/Versions/2.6/Python (compatibility version 2.6.0, current version 2.6.1)
所以我重新编译:
./configure with-python=/Library/Frameworks/Python.framework/Versions/2.7/bin/python
otool -L mod_wsgi.so 显示没有变化:
/System/Library/Frameworks/Python.framework/Versions/2.6/Python(兼容版本2.6.0,当前版本2.6.1)
重启后,Apache 仍在使用 2.6,phpinfo() 和错误日志都证实了这一点。来自 phpinfo() 的 Apache 详细信息如下:
Apache/2.2.22 (Unix) DAV/2 mod_wsgi/3.4 Python/2.6.1 PHP/5.3.15 mod_ssl/2.2.22 OpenSSL/0.9.8r
它使用在此路径中找到的模块:/Library/Python/2.6/site-packages/。/Library/Python 中没有 2.7 目录。
我尝试摆弄 httpd.conf 中的 WSGIPythonHome 变量,但没有任何效果。
我还使用disable-framework命令编译了mod_wsgi。这也没有解决问题。
我的 Apache 配置中是否还需要更改其他内容以将其指向正确的 python 版本,或者我是否需要在 mod_wsgi 配置中添加额外的内容?将我正在使用的模块安装到 2.6 中不是一个选项。
我在 Mac OSX 10.6.8 上运行 Apache 2
谢谢。
<小时/>这是完整的解决方案。
cd <mod_wsgi source directory>
make distclean
./configure --with-python=/Library/Frameworks/Python.framework/Versions/2.7/bin/python --disable-framework
sudo make install
最佳答案
从源代码重建 mod_wsgi,这次运行“configure”时添加选项“--disable-framework”。
当尝试将 Python 作为框架链接时,Snow Leopard 的单独 Python 安装程序并不总是能正常工作。因此,您需要禁用这种链接方式,以便它使用更传统的库链接。这应该会导致 otool 显示它选择了正确的 Python 版本,并且使用时一切都应该没问题。
您不能使用 WSGIPythonHome 强制它使用不同的版本。
关于python - 无法使用 Python 2.7 重新编译 mod_wsgi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521876/