无法使用Python 2.7重新编译mod_wsgi

时间:2014-03-20 01:49:56

标签: 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

1 个答案:

答案 0 :(得分:1)

从源代码重建mod_wsgi,这次运行'configure'时添加选项'--disable-framework'。

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

您无法使用WSGIPythonHome强制它使用其他版本。