mod_wsgi在多个Python版本下配置apache

前言

也许你会遇到这样的问题:Linux默认安装了Python2.6,在当下一些框架总是不支持低版本的Python,不得不去安装较高版本的Python,如Python2.7。然而当高版本的安装后,apache依然找到的是Python2.6,此刻便是头疼时刻。不妨看看这篇文档。当然这里是需要你保证在输入python --version之后输出的版本好是高版本的。那么剩下的问题我们不妨就在这里探讨一番,

问题

安装Python2.7后当再去运行之前基于python2.6环境配置的项目在apache以及mod_wsgi下可以正常运行的项目,却报出如下异常信息:

版本依赖出错,看了下详细信息在运行apache的时候既加载了Python2.7的site-packages又加载了Python2.6的site-packages

按照逻辑来寻找原因:

  • 之所以会加载python2.7的信息i,是因为我在httpd.conf中配置了python-path

  • python2.6的信息则是系统默认Python版本

  • 严重的错误是直接输出的Python版本为2.6的

解决问题

针对上面的问题进行一系列排查:首先不应该出现Python2.6的相关信息,因为在系统中已经处理过Python的版本,即使在终端python --version输出的也是2.7版本。apache是一个独立的模块,自然不会导致与Python交互的错误。唯一与Python打交道的一个中介组件便是mod_wsgi。

由于mod_wsgi是针对不同版本Python设计实现的,那么更换了Python版本之后自然需要更换一下mod_wsgi的版本。

之前使用的是Python2.6+mod_wsgi3.3,此时将mod_wsgi换成4.1版本的。激动的时刻出现了,可以正常运行。

你可能感兴趣的:(apache,python,多版本,mod_wsgi,版本升级,AutoTester)