为什么 ubuntu 12.04 中有多个 python 2 命令?

为什么 ubuntu 12.04 中有多个 python 2 命令?

因此,在使用一些别名时,我意识到终端中有三个 python 命令(不考虑 python 3 命令):

  • Python
  • python2
  • python2.7

所以我的问题是为什么会这样?为什么我们需要三个?我知道需要一个通用的(python)并且需要另一个来区分 python3 和 python2,但其余的我不知道。

此外,我如何知道它们是否链接到同一个文件(符号链接)?

答案1

python是发行版使用的默认解释器。它可能(也可能不是)1) 将来会指向 python3。

python2python是默认的 Python 2 解释器(如果指向 则与上面的相同python2,否则不指向)。它指向当前稳定/支持的解释器。

python2.7是特定的解释器---例如,您可以将其python2.7作为当前的解释器,并且python2.1您需要检查兼容性问题。

要查看全部内容:

[romano:~] % ls -l /usr/bin/python /usr/bin/python2 /usr/bin/python2.7
lrwxrwxrwx 1 root root       9 jul 22  2014 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root       9 jul 22  2014 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3345416 jun 22 20:51 /usr/bin/python2.7

因此在你的脚本中2python如果你想使用发行版的默认解释器(并且如果你想要完全的未来安全,那么你的脚本可以在版本 2 中运行3,但请参阅下面的注释 1); python2或者python3如果你需要版本 2或者3,但使用发行版提供的默认版本(推荐)也可以;python2.7如果你需要该特定版本,并且您希望当该版本不可用时脚本失败。


1思考它永远不会改变指向python3,这太危险了。但是,我没有水晶球……

2这是可执行脚本的第一行,对于 Python 来说应该是这样的

#! /usr/bin/env python2

相关内容