Ram*_*nez 2 python gnome-terminal symbolic-link 12.04
所以在玩一些别名时,我意识到终端中有三个 python 命令(不考虑 python 3 命令):
所以我的问题是为什么会这样?为什么我们需要三个?我理解需要有一个通用的(python),并且需要有另一个来区分 python3 和 python2,但其余的我不知道。
此外,如何查看它们是否链接到同一个文件(符号链接)?
python
是发行版使用的默认解释器。将来它可能(或可能不1)指向 python3 。
python2
是默认的 Python 2 解释器(如果python
指向,则与上面相同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
Run Code Online (Sandbox Code Playgroud)
因此,在您的脚本中——在 shebang 2 中——python
如果您想使用发行版的默认解释器,您可以使用(如果您希望未来完全安全,您的脚本可以在版本 2和3 中运行,但请参阅下面的注释 1); python2
或者,python3
如果您特别需要版本 2或3,但可以使用发行版提供的默认版本(推荐);python2.7
如果您需要该特定版本并且您希望脚本在不可用时失败。
1我认为它永远不会改变指向python3
,它太危险了。但是好吧,我没有水晶球......
2 this is the first line of the executable scripts that for Python should look like
#! /usr/bin/env python2
Run Code Online (Sandbox Code Playgroud)