关于CentOS升级python版本的随笔记录

近两天手上一个Django项目需要进行部署发布,客户给到的服务器系统为CentOS,由于之前只用过Ubuntu,对其不是很了解,在对原有python2.6进行升级的时候,踩到了一些坑,简单总结一下。
CentOS自带的python版本为2.6,但是项目需求的版本和一些依赖库一般都会比较高,所以需要对其进行升级。但是yum等一些库是依赖原有的2.6版本的。下面开始进行步骤说明
我们需要升级到Python2.7,用wget命令从官方下载源文件,然后解压进行编译。

wget http://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
unxz Python-2.7.10.tar.xz
tar -vxf Python-2.7.10.tar

执行完以上命令会解压得到Python-2.7.10这个文件夹,进入该目录并执行以下命令进行配置。

./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib

之后执行

vi ./Modules/Setup

找到#zlib zlibmodule.c -I(exec_prefix)/lib -lz去掉注释并保存,然后进行编译和安装

make && make install

安装好Python2.7之后我们需要先把Python2.6备份起来,然后再对yum的配置进行修改,如果不进行这一步操作的话,执行yum命令将会提示你Python的版本不对。执行以下命令,对Python2.6进行备份,然后为Python2.7创建软链接。

mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python

然后编辑/usr/bin/yum,将第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6.6
现在执行yum命令已经不会出现之前的错误信息了。
我们执行python -V查看版本信息,如果出现错误

error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

编辑配置文件

vim /etc/ld.so.conf

添加新的一行内容/usr/local/lib,保存退出,然后

/sbin/ldconfig  
/sbin/ldconfig -v

安装pip,下载最新版的pip,然后安装

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

此时可能会报一个错误如下(没有就跳过),告诉你wget无法建立SSL链接 ERROR: certificate common name *.c.ssl.fastly.net' doesn't match requested host namebootstrap.pypa.io'.To connect to bootstrap.pypa.io insecurely, use `--no-check-certificate
需要在wget命令中加上参数--no-check-certificate

wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py

查找pip的位置

find / -name pip

找到pip2.7的路径,为其创建软链作为系统默认的启动版本

ln -s /usr/local/python2.7/bin/pip2.7 /usr/bin/pip

pip安装完毕,现在可以用它下载安装各种包了

下面为安装virtualenv

pip install virtualenv

安装后查找virtualenv位置并建立virtualenv的软连接

find / -name virtualenv
ln -s /usr/local/python2.7/bin/virtualenv /usr/bin/virtualenv

然后选择路径,使用virtualenv建立一个虚拟环境,Ok。

你可能感兴趣的:(关于CentOS升级python版本的随笔记录)