Ubuntu下的python版本管理一直是个老大难问题,尤其是较低版本的Ubuntu,比如Ubuntu16.04的默认python3版本就是3.5,已经不能满足大多数情况下的需求了。
一个不错的解决方案是pyenv,但这个方案还是不如Ubuntu原生的软件管理系统来得自然,时不时在某些地方爆雷,比如某些场景下(如命令加sudo前缀时)会重定向回到原来的python版本,而且python的文件路径也会被存储到两个地方,使得python管理更加混乱。
升级python
类是gcc多版本的管理,我们可以通过apt install 安装新版本的python,再通过update-alternatives命令选择默认python版本。
以升级python3.6为例
# 安装python
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
# 设置命令python的版本优先级(若安装了其他版本的Python可以类似地设置)
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
# 如果只需要一个版本的python,可以不用执行上步,直接创建软连接
# sudo ln -s python3.6 /usr/bin/python
# 更改python版本
sudo update-alternatives --config python
以上操作完成后,命令端输入python即可进入python3.6。
另外一个需要注意的地方是,不要重定向python3到新版本的python,因为原有的一些软件需要依赖python3.5的一些库,如果重定向python3了可能会出现一些问题。比如说终端打不开,网上一些修改库名称的方案不太安全,容易给后面埋雷,还是尽量避免。
参考: