使用Ubuntu 16.04
尝试将 python 3.6 设置为python3
命令的默认值。我找到了似乎是答案的内容,并没有仔细阅读就快速复制粘贴了以下几行:
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1
update-alternatives: using /usr/bin/python3.6 to provide /usr/bin/python (python) in auto mode
$ sudo update-alternatives --set python /usr/bin/python3.6
这是结果:
$ python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
$ python
Python 3.6.8 (default, Dec 24 2018, 19:24:27)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.python
我的一个朋友试图像这样恢复它:
$ sudo update-alternatives --install /usr/bin/python3.6 python /usr/bin/python 1
update-alternatives: renaming python link from /usr/bin/python to /usr/bin/python3.6
这就是结果:
$ python
zsh: command not found: python
现在,任何与 python 3.6 链接的内容都会出现错误“符号链接级别过多”,如下例所示:
$ sudo update-alternatives --config python
update-alternatives: warning: alternative /usr/bin/python (part of link group python) doesn't exist; removing from list of alternatives
update-alternatives: error: cannot stat file '/usr/bin/python3.6': Too many levels of symbolic links
最大的问题是,如果你像我的朋友那样关闭终端,那么终端应用程序就会停止工作。他现在必须重新安装 Ubuntu。我处于同样的情况,只是我仍然没有关闭我的终端并且(目前)一切正常。
如何反转符号链接?
答案1
Python 包不使用替代品;恢复工作设置:
sudo update-alternatives --remove-all python
cd /usr/bin
sudo ln -sf python2.7 python
sudo ln -sf python3.5 python3
您可能需要重新安装 Python 3.6 软件包,因为您似乎已经覆盖了python3.6
二进制文件。
答案2
首先断开损坏的链接。
unlink /usr/bin/python2.7
然后使用 sudo update-alternatives 配置
sudo update-alternatives --config python
之后重新运行您想要的命令