在Ubuntu中进行系统自带的Pyhton2与Python3版本切换时,较多使用且比较简便的一种方法如下:
1、查看系统安装的Python2与Python3版本:
$ python #查看系统默认版本,通常为python2版本
$ python3 #查看python3版本
2、使用 update-alternatives 查看系统可用的Python 替代版本信息:
sudo update-alternatives --list python
3、若显示替代版本信息,可进行如下操作进行更新,但更常见的一种情况是出现错误:没有可用的替版本信息,此时也应当进行如下操作来添加新的替换版本信息:
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
$ sudp update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
此操作将Python2.7与Python3.5版本加入替换列表中,分别设置优先级为1 和 2。如果没有手动来设置替代选项,那么具有最高优先级的选项就会被选中。若手动选择替代选项,则在命令行输入:
$ sudo update-alternatives --config python
然后输入要选择版本的编号。
4、除了设置优先级的方法,还可以在替换列表中只保留要使用的Python版本,把不使用的替换信息删除,命令为:
$ sudo update-alternatives --remove python /usr/bin/python3.5
我在进行Python版本转换时,不知道是之前的操作有误还是系统设置的问题,采用上面的操作,不论是查看替换信息列表还是添加替换信息,都会报错:替换链接已经由python2来管理了。
经过很多次尝试最终找到了解决方法:将上述操作中的python(只包括名称,不包括链接和路径中的python)都换为python2,然后就可以替换Python版本了。这个问题可能是在输入版本替换命令时,系统默认使用python2来表示python,所以才会出现替换链接已经由python2来管理了的错误。这种错误的原理我还没弄清楚,不过最终还是成功替换了Python版本。