因此,在使用一些别名时,我意识到终端中有三个 python 命令(不考虑 python 3 命令):
- Python
- python2
- python2.7
所以我的问题是为什么会这样?为什么我们需要三个?我知道需要一个通用的(python)并且需要另一个来区分 python3 和 python2,但其余的我不知道。
此外,我如何知道它们是否链接到同一个文件(符号链接)?
答案1
python
是发行版使用的默认解释器。它可能(也可能不是)1) 将来会指向 python3。
python2
python
是默认的 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
因此在你的脚本中2—python
如果你想使用发行版的默认解释器(并且如果你想要完全的未来安全,那么你的脚本可以在版本 2 中运行和3,但请参阅下面的注释 1); python2
或者python3
如果你需要版本 2或者3,但使用发行版提供的默认版本(推荐)也可以;python2.7
如果你需要该特定版本,并且您希望当该版本不可用时脚本失败。
1我思考它永远不会改变指向python3
,这太危险了。但是,我没有水晶球……
2这是可执行脚本的第一行,对于 Python 来说应该是这样的
#! /usr/bin/env python2