Linux下的Python3版本切换__学习笔记

Prerequisites

  • 在ubuntu22.0.4中,repository中默认有python3.8,但version<3.8已经不在其默认库中,需要去下载源代码;
  • 切换过程依赖于命令:update-alternativaes ;
  • 本文将构建一个python[ 3.10 3.8 3.6 3.5 ]的选择器;

更新系统

在安装软件前,首先更新系统

sudo apt update -y && sudo apt upgrade -y

具体步骤

步骤 1 安装 Python 3.10

我们将从 Ubuntu 22.04 默认存储库中提供的最新版本开始。
要安装python3.10,请执行以下命令:

sudo apt install python3.10 -y

要检查已安装的版本,请执行命令python3.10 -V;
您应该收到以下输出:

root@host:~# python3.10 -V
Python 3.10.6

步骤 2 安装 Python 3.8

我们列表中的第二个 Python 版本是 Python 3.8。要安装它,请执行以下命令:

sudo apt install python3.8 -y

要检查已安装的版本,请执行命令python3.8 -V;
您应该收到以下输出:

root@host:~# python3.8 -V
Python 3.8.16

以上是可以直接在 ubuntu 22.04 的default repo中直接sudo install的
以下需要去下载源代码构建

步骤 3 安装 Python 3.6

第三个 Python 版本将是 Python 3.6 版本。让我们执行以下命令:

sudo apt install python3.6 -y

如果之前没有做过类似的部署,安装过程将失败并显示以下消息:

root@host:~# sudo apt install python3.6 -y
正在读取软件包列表...完成
构建依赖关系树...完成
正在读取状态信息...完成
E:无法找到包 python3.6
E: 无法通过 glob 'python3.6' 找到任何包

这意味着 Python3.6 不在 Ubuntu 22.04 的默认存储库中;

3.1 我们需要从源代码下载构建版本,有两种方式可供选择:

3.1.1 方法一:

执行以下命令:

cd /opt
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
3.1.2 方法二:

进入网址:https://www.python.org/ftp/python/3.6.9 下载.tgz文件,下载后执行

sudo cp /Downloads/Python-3.6.9.tgz /opt

3.2 以上方式任选其一(推荐第二种下载更快),进行解压:

tar xfv Python-3.6.9.tgz
cd /Python-3.6.9

3.3 在继续安装之前,我们需要安装 Python 低版本的依赖:

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev 	wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev libgdbm-dev libnss3-	dev libedit-dev libc6-dev

3.4 完成这些准备工作后,输入以下命令来构建和安装:

./configure --enable-optimizations
sudo make altinstall

要检查已安装的版本,请执行命令python3.6 -V;
您应该收到以下输出:

root@host:/opt/Python-3.6.9# python3.6 -V
Python 3.6.9

Python3.6安装成功,v3.5也将按照该方法安装

步骤 4 安装 Python 3.5

本文将要安装的最后一个 Python 版本是 Python3.5 版本;
参考Python3.6 的安装方法进行下载和安装,此处只用了方法一,方法二请照猫画虎;
此处给出python3.5网址https://www.python.org/ftp/python/3.5.10

cd /opt
wget https://www.python.org/ftp/python/3.5.10/Python-3.5.10.tgz
tar xfv Python-3.5.10.tgz
cd Python-3.5.10/
./configure --enable-optimizations
sudo make altinstall

要检查已安装的版本,请执行命令python3.5 -V;
您应该收到以下输出:

root@host:/opt/Python-3.5.10# python3.5 -V
Python 3.5.10

步骤 5 实现在 Python 版本之间切换

全部的python版本已经部署完毕,下面解释如何在不同的 Python 版本之间切换。

  • 默认存储库安装的 Python 版本位于/usr/bin目录中;
  • 从源代码构建的位于/usr/local/bin目录中;
  • 为每一个已安装的 Python 版本创建符号链接,包括已安装 Python 版本的路径。

逐个执行以下命令:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
sudo update-alternatives --install /usr/local/bin/python python /usr/local/bin/python3.6 3
sudo update-alternatives --install /usr/local/bin/python python /usr/local/bin/python3.5 4

应该逐个看到类似这样的输出:

root@host:/# sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
update-alternatives: using /usr/bin/python3.10 to provide /usr/bin/python (python) in auto mode

root@host:/opt/Python-3.6.9# sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python (python) in auto mode

root@host:/opt/Python-3.6.9# sudo update-alternatives --install /usr/local/bin/python python /usr/local/bin/python3.6 3
update-alternatives: renaming python link from /usr/bin/python to /usr/local/bin/python
update-alternatives: using /usr/local/bin/python3.6 to provide /usr/local/bin/python (python) in auto mode

root@host:/opt/Python-3.6.9# sudo update-alternatives --install /usr/local/bin/python python /usr/local/bin/python3.5 4
update-alternatives: using /usr/local/bin/python3.5 to provide /usr/local/bin/python (python) in auto mode

要列出并选择应该激活的 Python 版本,请执行以下命令:

sudo update-alternatives --config python

输出应如下所示:

root@host:~$ sudo update-alternatives --config python
[sudo] root 的密码: 
有 4 个候选项可用于替换 python (提供 /usr/local/bin/python)。

  选择       路径                          优先级     状态
------------------------------------------------------------
  0            /usr/local/bin/python3.5   4         自动模式
* 1            /usr/bin/python3.10        1         手动模式
  2            /usr/bin/python3.8         2         手动模式
  3            /usr/local/bin/python3.5   4         手动模式
  4            /usr/local/bin/python3.6   3         手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:2
update-alternatives: 使用 /usr/bin/python3.8 来在手动模式中提供 /usr/local/bin/python (python)

通过手动选择优先级2,即将python解释器手动更改为python3.8
输入python -V验证:

root@host:~$ python -V
Python 3.8.19

出现问题时,删除update-alternatives创建的软链接:

sudo update-alternatives --remove python /usr/bin/python3.8
sudo update-alternatives --remove python /usr/bin/python3.10
sudo update-alternatives --remove python /usr/local/bin/python3.5
sudo update-alternatives --remove python /usr/local/bin/python3.6

学习笔记之Linux目录

Linux中: /usr/bin/usr/local/bin 使用区别
usr 指 Unix System Resource,不是User

  • /usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变
  • /usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件

如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响

echo $PATH
/usr/local/bin:/usr/bin

/usr/local/bin 是优先于 /usr/bin

欢迎大家留言讨论!!!

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值