CentOS7 源码安装Python 3.11.4

1,114 阅读2分钟

安装步骤

  1. 安装编译环境和依赖包:

    sudo yum install gcc openssl-devel bzip2-devel libffi-devel wget
    
  2. 下载Python 3.11.4源码包:

    wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
    
  3. 解压源码包:

    tar -xvf Python-3.11.4.tgz
    
  4. 编译和安装:

    # 安装源码编译需要的编译环境
    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
    
  5. 设置软链接指向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
    
  6. 检查Python版本以确认是否安装成功:

    [hadoop@node01 ~]$ python --version
    Python 3.11.4
    

    输出Python 3.11.4表示编译安装成功。

这样就完成了在CentOS7上从源码编译安装Python3.11.4并设置软链接指向python3.11的过程。

修改依赖python2的文件

在CentOS7上将python软链接修改为python3后,可能会影响依赖原来python2的一些程序。主要需要修改的文件包括:

  1. /usr/bin/yum

yum默认调用/usr/bin/python,需要修改首行改为:

#!/usr/bin/python2
  1. /usr/libexec/urlgrabber-ext-down

同样需要修改首行为:

#!/usr/bin/python2
  1. /usr/bin/vim

修改首行为:

#!/usr/bin/python2
  1. /usr/lib/systemd/systemd-python

修改首行为:

#!/usr/bin/python2
  1. /usr/sbin/sestatus

修改首行为:

#!/usr/bin/python2

以上是主要需要修改的几个文件。修改保存后记得修改文件权限为可执行。