关于可移植性:适用于Python脚本的shebang

Proper shebang for Python script

我通常在Python脚本中使用以下shebang声明:

1
#!/usr/bin/python

最近,我看到了这个"舍邦宣言:

1
#!/usr/bin/env python

在脚本文档中,注意到使用此表单是"更可移植的"。

这个声明是什么意思?为什么路中间有一个空间?它真的有助于提高可移植性吗?


1
#!/usr/bin/env python

更易于移植,因为一般情况下,程序/usr/bin/env可以用来"激活"所需的命令而不需要完整的路径。

否则,您必须指定Python解释器的完整路径,这可能会有所不同。

因此,无论python解释器是在/usr/bin/python中,还是在/usr/local/bin/python中,还是在您的主目录中,使用#!/usr/bin/env python都是有效的。