【问题标题】:Can't recompile mod_wsgi with Python 2.7无法使用 Python 2.7 重新编译 mod_wsgi
【发布时间】:2014-04-26 15:26:15
【问题描述】:

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

【问题讨论】:

  • 您是否安装了 Python 2.7 开发文件?
  • 因为我不知道那些是什么,所以可能不是。我想我拥有我需要的一切。故障似乎是 --with-python 命令,显然在构建过程中被忽略了。
  • config.log 说什么?
  • config.log 中的所有 python 引用都指向 python 2.7。配置期间的输出还表明它正在查找当前版本。但是在制作过程中发生了一些事情,把事情搞砸了。

标签: python apache python-2.7 mod-wsgi


【解决方案1】:

从源代码重建 mod_wsgi,这一次当你运行“配置”时添加选项“--disable-framework”。

在尝试将 Python 作为框架链接时,Snow Leopard 的单独 Python 安装程序并不总是能正常工作。因此,您需要禁用这种链接样式,以便它使用更传统的库链接。这应该会导致 otool 显示它选择了正确的 Python 版本,然后在使用时应该没问题。

您不能使用 WSGIPythonHome 来强制它使用不同的版本。

【讨论】:

  • 使用 with-python 和 disable-framework 进行配置确实有效。我刚刚了解到我需要运行 make distclean 来获得新的 make。谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
相关资源
最近更新 更多