Ubuntu 升级 Python 3.6 版本到 3.8

更新日期: 2023-04-18 阅读次数: 19221 字数: 362 分类: Python

由于我要使用 tmuxp 替代 tmuxinator, 其依赖的 Python 最低版本是 3.7,而我本机的 Python 版本为 3.6。 所以,我要安装 3.8 版本,并将默认的 python3 命令指向 3.8。

系统环境

  • Ubuntu 18.04 (Windows WSL)
  • Python 3.6.9
> python3 --version
Python 3.6.9

Ubuntu 安装 Python 3.8

sudo apt install python3.8

将 python3.6 和 3.8 添加到 update-alternatives

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2

将 python3 指向 python3.8

> sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.8   2         auto mode
  1            /usr/bin/python3.6   1         manual mode
  2            /usr/bin/python3.8   2         manual mode

Press <enter> to keep the current choice[*], or type selection number:

可以看到,已经默认指向了 python3.8,按回车即可。

测试一下,可以看到指向已更新。

> python3
Python 3.8.0 (default, Dec  9 2021, 17:53:27)

update-alternatives 的用途

我是第一次使用 update-alternatives,没想到还有这么个命令。

先不看命令说明文档,猜测一下,就是为了处理程序多版本共存的问题。 例如,我写个程序,有多个版本,但是又不想每次都覆盖更新,那么就可以用 update-alternatives 来管理。

> man update-alternatives
update-alternatives - maintain symbolic links determining default commands

ModuleNotFoundError: No module named 'apt_pkg'

升级之后,会发现很多命令都报这个错误,解决方法:

cd /usr/lib/python3/dist-packages/
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so

删除 python 3.8

如果以后不需要 python 3.8,可以这样删除。

sudo apt-get -y purge python3.8
sudo apt-get -y autoremove

参考

  • https://tech.serhatteker.com/post/2019-12/upgrade-python38-on-ubuntu/

tags: update-alternatives

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式