在使用Linux系统的过程中,发现某些软件依赖的版本是python3,但是系统中之前又安装了python2,该版本不仅官方已经停止更新,这样就需要安装一个新的python3版本。接下来我们就开始在Linux系统中将python2升级到python3的过程,具体的升级步骤如下:
1.下载安装包
首先我们新建一个目录,用于保存下载的python安装包,然后将其解压。
sudo mkdir -p /opt/python3 && cd /opt/python3/
curl -O -C - https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz
tar -xvf Python-3.12.2.tar.xz
cd Python-3.12.2/
这里我们直接是在python的官方网站下载的,因此速度有点慢,如果国内有合适的镜像,可以把下载链接改成国内的,这样会快很多。
2、编译安装
# 安装gcc编译器
sudo yum -y install gcc
# 源码编译-生成Makefile
sudo ./configure --prefix=/usr/local/python3 --enable-optimizations
# 源码编译-编译并安装
sudo make && sudo make install
–prefix参数指定了软件的安装目录,该软件所有的安装文件都被复制到这个目录,其好处是方便我们卸载或移植软件,推荐使用。
等待安装完成后我们验证下版本,显示:Python 3.12.2则表示安装成功
#验证版本
python3.12 --version
在安装过程中,我遇到了如下的问题:
zipimport.ZipImportError: can’t decompress data
问题的原因是缺少zlib的相关工具包,我们只需要安装相关依赖包即可
sudo yum -y install zlib*
然后重新执行编译就成功了。
3.创建软链接(非常重要)
软链接是Linux中的一个常用命令,它的功能是为某一个文件在另外一个位置建立一个链接。软链接文件类似于Windows的快捷方式,它实际上是一个特殊的文件,其中保存的是另一个文件的位置信息。
由于系统已经安装了python2的版本,python的软链接指向的还是python2的,这里我们要将python指向新安装的python3,之后python指向的就是新安装的版本。
sudo ln -bsv /usr/local/python3/bin/python3.12 /usr/bin/python3
sudo ln -bsv /usr/bin/python3 /usr/bin/python
因为系统安装python2后存在python的链接,所以要添加-b的参数。
再次验证pythone是否指向了最新版本,显示:Python 3.12.2则表示成功
python --version
现在,如果我们直接输入python,默认打开的就是python3。
这里我们并没有删除python2,而是留在这里作为备用,如果输入python2执行的就是python2版本。
4、代码版本迁移
官方提供了一个版本2程序转换到版本3的程序,安装以后就可以转换代码
sudo python -m pip install 2to3
使用方法:
#将python2构建的example.py代码转换到python3版本
sudo 2to3 example.py