CentOS 7.1 升级Python2.7.10及编译mod_wsgi指南
最近,准备学习下Django的开发。下载了最新的CentOS7.1(安装的时候选的开发及生成工作站,然后右边全勾上了),打算开始配置及开发。当然,环境的配置实际上还是有点小棘手的。找了一下网上的配置教程,我只想说很多人真的只是转载,压根就不会去确认教程的正确与否。花了一些时间,把自己遇到的问题记录一下,或许后面其他朋友能够用的上。
CentOS7.1默认安装的是Python2.7.5,如果按照默认安装的Python版本来,下载mod_wsgi源码进行编译,当然是可以顺利搞定的。但是,现在Python都出2.7.10版本了,用着Python2.7.5版本还是有点小不爽。
更新CentOS 7.1的Python到2.7.10,这里采用源码编译安装。
官网下载Python2.7.10的源码:
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
增加个执行权限:
chmod +x Python-2.7.10.tar.xz
解压缩:
xz -d Python-2.7.10.tar.xztar xvf Python-2.7.10.tar
编译前,注意一下,configure时候要使用"--enable-shared",表示生成动态链接库。(不然后面编译mod_wsgi会出错)仅使用这一项也不够,开始仅使用--enable-shared选项,发现编译完成后,进入Python2.7.10目录,执行python、python2、python2.7在终端都是返回python2.7.5的提示符。所以,在执行configure命令的时候,还要加上"-rpath"选项,这个代表是否将生成的库安装在软件的安装目录,默认是在安装目录,否则自己指定路径。
先建立一个目录,不然后面configure的时候会出错:
mkdir -p /usr/local/python/2.7.10/lib
进入Python2.7.10的目录下,编译安装:
./configure --enable-shared --prefix=/usr/local/python/2.7.10 LDFLAGS="-Wl,-rpath /usr/local/python/2.7.10/lib"
makemake install
稍微设置一下:
mv /usr/bin/python /usr/bin/python2.7.5ln -s /usr/local/python/2.7.10/bin/python2.7 /usr/bin/python
因为yum使用的系统Python版本,还有设置一下yum相关的文件,这样执行yum相关的命令时才不会出错。修改第一句:
#!/usr/bin/python2.7.5
我遇到修改了上面的之后,yum还是出问题,然后又根据出问题的部分修改了"/usr/libexec/urlgrabber-ext-down"下的第一句:
#! /usr/bin/python2.7.5
好了,Python2.7.10版本就安装好了。注意,新安装的版本是没有pip的,所以继续安装pip吧。
下载ez_setup.py文件,安装setuptools:
wget https://bootstrap.pypa.io/ez_setup.py
下载pip源码,进入源码目录进行安装:
python setup.py install
增加一个软链接:
ln -s /usr/local/python/2.7.10/bin/pip /usr/bin/pip
开始mod_wsgi的编译安装,下载最新版本的mod_wsgi源码。编译安装:
./configuremakemake install
最后,执行以下提示的命令:
chmod 755 /usr/lib64/httpd/modules/mod_wsgi.so
OK,mod_wsgi编译安装完毕。后续就是配置了。
参考链接:http://koansys.com/tech/building-python-with-enable-shared-in-non-standard-location