![关于 Python 映射的问题(/etc/alternatives/python)](https://linux22.com/image/1011135/%E5%85%B3%E4%BA%8E%20Python%20%E6%98%A0%E5%B0%84%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%88%2Fetc%2Falternatives%2Fpython%EF%BC%89.png)
我使用的是 Ubuntu 16.04,目前安装了 3 个 Python 版本:Python 2.7、3.5 和 3.6。我有一个与 /etc/alternatives/python 快捷方式相关的问题。
以下是一些简要的背景信息:
ls -l /usr/bin/python*
# Output:
/usr/bin/python -> /etc/alternatives/python
/usr/bin/python2 -> python2.7
/usr/bin/python2.7
/usr/bin/python2.7-config -> x86_64-linux-gnu-python2.7-config
/usr/bin/python2-config -> python2.7-config
/usr/bin/python3 -> python3.6
/usr/bin/python3.5
/usr/bin/python3.5-config -> x86_64-linux-gnu-python3.5-config
/usr/bin/python3.5m
/usr/bin/python3.5m-config -> x86_64-linux-gnu-python3.5m-config
/usr/bin/python3.6
/usr/bin/python3.6m
/usr/bin/python3-config -> python3.5-config
/usr/bin/python3m -> python3.5m
/usr/bin/python3m-config -> python3.5m-config
/usr/bin/python-config -> python2.7-config
我通过输入以下内容成功将“python3”快捷方式(最初打开 Python 3.5)映射到 3.6:
sudo ln -s python3.6 python3
我的第一个输出清楚地表明这已经起作用了。据我所知,使用“ln -s”会在命令“python3”和/usr/bin/python3.6之间创建一个符号链接,这样当我输入“python3”时,我的计算机就知道我的意思是/user/bin/python3.6。
我的问题是:为什么“ /usr/bin/python -> /etc/alternatives/python”的快捷方式不同。我见过有人使用以下命令来更改“python”的映射:
sudo update-alternatives --config python
# My output in this case:
[sudo] password for m93:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/python3.6 2 auto mode
* 1 /usr/bin/python2.7 1 manual mode
2 /usr/bin/python3.5 1 manual mode
3 /usr/bin/python3.6 2 manual mode
据我了解,这意味着 python 2.7 对应于“python”。但是:
- 为什么映射“python3”的方式如此不同?
- 手动模式和自动模式分别是什么意思?
- 优先级别是什么意思?
更新
当我创建这个 /etc/alternatives/python 时,我并不知道自己在做什么,但我按照此链接中的说明进行操作 https://unix.stackexchange.com/questions/410579/change-the-python3-default-version-in-ubuntu
简而言之,这涉及:来自评论:
$ sudo update-alternatives --config python
#Will show you an error: update-alternatives: error: no alternatives for python3
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
$ sudo update-alternatives --config python
然而,在某个地方,我感到困惑,最终得到了上面显示的输出。我可以删除 /etc/alternatives/python 吗?
非常感谢。