python - 无法使用 Python 2.7 重新编译 mod_wsgi

标签 python apache python-2.7 mod-wsgi

我发现无法为 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/

相关文章:

python - 如何使用我在 python 中使用 swig 生成的包装函数?

apache - 捕获所有子域?

python - multiprocessing.Process 实例完成后我的队列为空

Python 2 和 3,字节码(pyo 和 pyc)是否向后兼容?

linux - sudo 作为 www-data 文件权限

apache - 无效命令 'WSGIScriptAlias',可能拼写错误或由未包含在服务器配置中的模块定义操作 'configtest' 失败

Python pip 说 : pkg_resources. DistributionNotFound : pip==1. 4.1

python - 如何使用类型函数为方法编写 python 多语言单元测试?

windows - 在 Windows 平台中将 Ghostscript 链接到 pypdfocr

python - 激活Python虚拟环境并在另一个Python脚本中调用Python脚本