Ubuntu系统Python版本冲突,如何将python命令指向指定版本?
你的当前Python版本
你执行python --version显示的2.7.6就是当前python命令指向的版本,而python2.7命令已经指向了你通过tarball安装的2.7.14。
如何让python命令指向2.7.14
Ubuntu下推荐用系统自带的update-alternatives工具来管理命令的默认版本,这比直接修改软链接更安全,也更容易恢复。下面是具体步骤:
方法一:使用update-alternatives(推荐)
- 先确认两个Python版本的完整路径:
- 执行
which python,得到系统默认2.7.6的路径(应该是/usr/bin/python) - 执行
which python2.7,得到你安装的2.7.14的路径(根据你的whereis结果,大概率是/usr/bin/python2.7)
- 执行
- 把两个版本添加到备选列表:
- 添加2.7.14(优先级设为2,更高优先级会被优先选中):
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2 - 添加系统原来的2.7.6(优先级设为1):
先通过ls -l /usr/bin/python找到它实际指向的文件,比如如果是/usr/bin/python2.7.6,就执行:sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7.6 1
- 添加2.7.14(优先级设为2,更高优先级会被优先选中):
- 配置默认版本:
执行下面的命令,会弹出选项列表,输入对应2.7.14的编号回车即可:sudo update-alternatives --config python - 验证:
执行python --version,应该显示2.7.14了。
方法二:直接修改软链接(不推荐)
如果你不想用update-alternatives,可以直接修改/usr/bin/python的软链接,但注意:这可能会破坏系统依赖(比如apt工具),操作前请备份:
- 备份原软链接:
sudo mv /usr/bin/python /usr/bin/python.bak - 创建新软链接指向2.7.14:
sudo ln -s /usr/bin/python2.7 /usr/bin/python - 验证:
执行python --version确认版本。
重要提醒
修改系统全局的Python版本可能导致部分系统工具无法正常工作,比如Ubuntu的apt依赖系统自带的Python版本。如果遇到问题,用update-alternatives切换回原来的版本,或者恢复备份的软链接即可。
更稳妥的方式是使用虚拟环境(比如virtualenv),这样你可以在特定项目中使用Python 2.7.14,完全不影响系统全局设置。
内容的提问来源于stack exchange,提问作者Arin Ekandem




