安装步骤
-
安装编译环境和依赖包:
sudo yum install gcc openssl-devel bzip2-devel libffi-devel wget
-
下载Python 3.11.4源码包:
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
-
解压源码包:
tar -xvf Python-3.11.4.tgz
-
编译和安装:
# 安装源码编译需要的编译环境 yum -y install gcc zlib zlib-devel libffi libffi-devel readline-devel # 安装openssl11,后期的pip3安装网络相关模块需要用到ssl模块 yum install openssl-devel openssl11 openssl11-devel # 设置编译FLAG,以便使用最新的openssl库 export CFLAGS=$(pkg-config --cflags openssl11) export LDFLAGS=$(pkg-config --libs openssl11) # 进入刚解压缩的目录 cd /home/hadoop/opt/Python-3.11.4 # #指定python3的安装目录为 /usr/python 并使用ssl模块,指定目录好处是后期删除此文件夹就可以完全删除软件了。 ./configure --prefix=/home/hadoop/opt/python3.11.4 --with-ssl # 源码编译并安装,时间会持续几分钟 make && make install
-
设置软链接指向Python3:
# 可以删除,也可备份,按需操作即可 [hadoop@node01 ~]$ sudo rm -f /usr/bin/python [hadoop@node01 ~]$ sudo rm -f /usr/bin/pip [hadoop@node01 ~]$ sudo ln -s /home/hadoop/opt/python3.11.4/bin/python3 /usr/bin/python3 [hadoop@node01 ~]$ sudo ln -s /home/hadoop/opt/python3.11.4/bin/pip3 /usr/bin/pip3 [hadoop@node01 ~]$ sudo ln -s /home/hadoop/opt/python3.11.4/bin/python3 /usr/bin/python [hadoop@node01 ~]$ sudo ln -s /home/hadoop/opt/python3.11.4/bin/pip3 /usr/bin/pip
-
检查Python版本以确认是否安装成功:
[hadoop@node01 ~]$ python --version Python 3.11.4
输出Python 3.11.4表示编译安装成功。
这样就完成了在CentOS7上从源码编译安装Python3.11.4并设置软链接指向python3.11的过程。
修改依赖python2的文件
在CentOS7上将python软链接修改为python3后,可能会影响依赖原来python2的一些程序。主要需要修改的文件包括:
- /usr/bin/yum
yum默认调用/usr/bin/python,需要修改首行改为:
#!/usr/bin/python2
- /usr/libexec/urlgrabber-ext-down
同样需要修改首行为:
#!/usr/bin/python2
- /usr/bin/vim
修改首行为:
#!/usr/bin/python2
- /usr/lib/systemd/systemd-python
修改首行为:
#!/usr/bin/python2
- /usr/sbin/sestatus
修改首行为:
#!/usr/bin/python2
以上是主要需要修改的几个文件。修改保存后记得修改文件权限为可执行。