由于我要使用 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/
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式