CentOS升级Python
由于CentOS 6.5内置的Python版本为2.6.6,版本比较低。在使用许多程序时都多有不便,比如其unittest就不支持最基本的SetUpClass和TearDownClass的方法,因此我们需要升级Python版本。但是由于内置的Python 2.6.6版本是其他一些系统内置程序的基础,比如yum工具,因此我们不能卸载原来的内置Python。
下载
在Python官网下载最新的
安装
-
安装必要的工具
yum install gcc -y yum install zlib zlib-devel -y yum install openssl-devel
-
解压
tar -zxvf Python-3.6.7.tgz -C /usr/local
-
配置
cd /usr/local/Python-3.6.7 ./configure --with-ssl --enable-optimizations --with-openssl=/usr/bin/openssl
-
编译
make
-
安装
make install
make clean
make distclean
-
备份原Python
mv /usr/bin/python /usr/bin/python.org rm -rf /usr/bin/python2 ln -s /usr/bin/python2.6 /usr/bin/python2
-
创建新Python软链接
ln -s /usr/local/bin/python3.6 /usr/bin/python ln -s /usr/local/bin/python3.6 /usr/bin/python3 ln -s /usr/local/bin/pip3 /usr/bin/pip
-
修复yum
vi /usr/bin/yum
修改文件头部,并保存。
#!/usr/bin/python
改为
#!/usr/bin/python2
二、CentOS 7 升级方法
下载
curl -O https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
安装
tar -zxf Python-3.7.9.tgz yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel cd Python-3.7.9 ./configure --prefix=/usr/local/python3.7 make && make install
在make install后执行
echo $?
为0表示没有出错。如果没有报错,在/usr/local会生成python3.7目录。
创建软链接
将系统默认的python2备份
mv /usr/bin/python /usr/bin/python.bak
创建新的软连接
ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python ln -s /usr/local/python3.7/bin/pip3.7 /usr/bin/pip
查看版本
python -V
pip -V
恢复yum
因为yum需要使用python2,将/usr/bin/python改为python3后,yum就不能正常运行了,因此需要更改一下yum的配置。
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
编辑这两个文件,将文件头的#!/usr/bin/python改为#!/usr/bin/python2即可。
添加环境变量
可以添加环境变量到当前用户也可以添加到系统
添加到当前用户
vi ~/.bashrc
source ~/.bashrc
添加到系统
vi /etc/profile
source /etc/profile
两种方式修改添加的内容均如下:
PYTHONPATH=/usr/local/python3.7/bin PATH=$PATH:$PYTHONPATH