Ubuntu
Python符號連結混淆了
使用 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。我處於同樣的情況,只是我仍然沒有關閉我的終端並且(目前)一切正常。
如何反轉符號連結?
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
二進製文件。
首先斷開損壞的連結。
unlink /usr/bin/python2.7
然後使用 sudo update-alternatives 進行配置
sudo update-alternatives --config python
之後重新執行您想要的命令