Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用Python 2.7重新编译mod_wsgi_Python_Apache_Python 2.7_Mod Wsgi - Fatal编程技术网

Can';t使用Python 2.7重新编译mod_wsgi

Can';t使用Python 2.7重新编译mod_wsgi,python,apache,python-2.7,mod-wsgi,Python,Apache,Python 2.7,Mod Wsgi,我发现不可能为Python2.7重新编译mod_wsgi 我正在使用Flask和Flask WTF构建一个应用程序。它作为一个独立的应用程序运行良好,但在Apache中会中断,因为mac上的Apache服务器使用的是Python2.6,尽管默认情况下在Python应用程序中安装并使用了2.7。单机版使用2.7版本 哪种python显示了这一点: /Library/Frameworks/Python.framework/Versions/2.7/bin/python otool-L mod_ws

我发现不可能为Python2.7重新编译mod_wsgi

我正在使用Flask和Flask WTF构建一个应用程序。它作为一个独立的应用程序运行良好,但在Apache中会中断,因为mac上的Apache服务器使用的是Python2.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中不是一个选项

我在MacOSX 10.6.8上运行Apache2

谢谢


这是完整的解决方案

cd <mod_wsgi source directory>

make distclean

./configure --with-python=/Library/Frameworks/Python.framework/Versions/2.7/bin/python --disable-framework

sudo make install
cd
打扫卫生
./configure--with python=/Library/Frameworks/python.framework/Versions/2.7/bin/python--disable framework
sudo制作安装

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

当试图链接到Python作为框架时,Snow Leopard的单独Python安装程序并不总是能够正常工作。因此,您需要禁用该链接样式,以便它使用更传统的库链接。这将导致otool显示它选择了正确的Python版本,使用时一切都会正常


您不能使用WSGIPythonHome强制它使用其他版本。

您安装了Python 2.7开发文件吗?因为我不知道这些文件是什么,可能没有。我想我有我需要的一切。问题似乎是--with python命令在构建过程中被忽略了。config.log说了什么?config.log中的所有python引用都指向python 2.7。配置期间的输出还表明它正在查找当前版本。但在make过程中发生了一些事情,使其出错。使用python和disable框架进行配置确实有效。我刚知道我需要跑一圈来换新的发型。谢谢