rpm系linux手动编译升级python2至python3

爱被打了一巴掌 2024-02-18 10:29 103阅读 0赞

先声明笔者实际操作环境为centos7.x86-64,由于很多Linux系统默认的Python为python2,但是出于各种原因,我们需要在linux系统上升级python至python3,由于很多情况下受限于系统版本,包管理器yum或apt会将python2的某一版本作为最新稳定版,我们无法直观通过包管理器来进行安装,因此就需要手动编译安装,在这个过程中,笔者总结了一下自己踩过的坑

首先我们下载官网的压缩包,根据系统和架构选择适合自己的,这里我选的是linux.x86_64的:

  1. wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz

接着解压源码包并进入源码目录:

  1. tar xf Python-3.11.6.tgz
  2. cd Python-3.11.6/

接着进行编译安装,编译这里,注意编译选项:

  1. mkdir -p python-3.11
  2. ./configure --prefix=/usr/local/python-3.11 --enable-shared --enable-optimizations

--prefix指定安装路径,—enable-shared则是启用共享库,更多的编译选项请参考所安装python版本的官方手册,接着是make两连击:

  1. make -j`nproc` && make install

这一步做完python就已经被正确安装了,但是输入python —version依旧是旧版本的python,这里需要注意的点在于妥善处理新旧版本的python,因为许多linux包管理器等使用的是python2,如若不妥善处理会造成基础功能受损,提供两种思路(笔者推荐第二种):

一种是对yum包管理器文件直接进行修改:

备份原本的python可执行文件:

  1. mv /usr/bin/python /usr/bin/python.bak

查看/usr/bin/python相关文件:

  1. ll /usr/bin/python*

接着编辑/usr/bin/yum文件:

  1. vi /usr/bin/yum

修改第一行的路径为上述ll /usr/bin/python*中查看的python2的路径即可

另一种则是修改环境变量:

首先修改Path环境变量:

  1. export Path=/usr/local/python-3.11:$Path

这样就会使得默认找python时,先从你的新的安装目录开始寻找,并且不影响你原本的默认Python2的依赖环境,设置完Path,还要再设置一下共享库,否则会在其他依赖python3编译过程报错:

打开配置文件:

  1. vi ~/.bashrc

接着在文件底部添加下列行即可:

  1. export LD_LIBRARY_PATH=/usr/local/python-3.11/lib:$LD_LIBRARY_PATH

对于LD_LIBRARY_PATH,有另外的方式,在/etc/ld.so.conf.d/目录下新增一个文件,文件内容为新安装python的库路径,再sudo ldconfig一下即可,但是笔者自己试了试,效果不好,因此还是直接设置环境变量。综上,新的python3就完整安装设置好啦~

发表评论

表情:
评论列表 (有 0 条评论,103人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Linux升级Python3.x

    Linux升级Python至3.x CentOS中默认安装了 Python,版本比较低(2.x),为了使用新版 3.x,需要对旧版本进行升级。 由于很多基本的命令、软件