CentOS升级Python

一、CentOS 6 升级方法

由于CentOS 6.5内置的Python版本为2.6.6,版本比较低。在使用许多程序时都多有不便,比如其unittest就不支持最基本的SetUpClass和TearDownClass的方法,因此我们需要升级Python版本。但是由于内置的Python 2.6.6版本是其他一些系统内置程序的基础,比如yum工具,因此我们不能卸载原来的内置Python。

下载

在Python官网下载最新的Python 3.6.7版,不要使用3.7版本因为编译时ssl支持部分会出现问题。

安装

  1. 安装必要的工具

yum install gcc -y
yum install zlib zlib-devel -y
yum install openssl-devel
  1. 解压

tar -zxvf Python-3.6.7.tgz -C /usr/local
  1. 配置

cd /usr/local/Python-3.6.7
./configure --with-ssl --enable-optimizations --with-openssl=/usr/bin/openssl
  1. 编译

make
  1. 安装

make install
make clean
make distclean
  1. 备份原Python

mv /usr/bin/python /usr/bin/python.org
rm -rf /usr/bin/python2
ln -s /usr/bin/python2.6 /usr/bin/python2
  1. 创建新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
  1. 修复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
posted @ 2021-06-03 11:33  酒剑仙*  阅读(559)  评论(0编辑  收藏  举报