我应该把#!(shebang)在Python脚本中,它应该采取什么形式?

2022-09-05 01:07:16

我应该把shebang放在我的Python脚本中吗?以什么形式?

#!/usr/bin/env python 

#!/usr/local/bin/python

这些是否同样便携?哪种形式使用最多?

注意:龙卷风项目使用shebang。另一方面,Django项目则不然。


答案 1

任何脚本中的shebang行决定了脚本像独立可执行文件一样执行的能力,而无需在终端中事先键入或在文件管理器中双击它(如果配置正确)。它不是必需的,但通常放在那里,所以当有人看到在编辑器中打开的文件时,他们会立即知道他们正在看什么。但是,您使用哪条shebang线很重要python

Python 3 脚本(默认为版本 3.latest)的正确用法是:

#!/usr/bin/env python3

Python 2 脚本的正确用法(默认为版本 2.latest)是:

#!/usr/bin/env python2

不应使用以下内容(除非您编写的代码与Python 2.x和3.x兼容的极少数情况除外):

#!/usr/bin/env python

PEP 394中给出的这些建议的原因是可以参考或参考不同的系统。pythonpython2python3

另外,请勿使用:

#!/usr/local/bin/python

“在这些情况下,python可以安装在/usr/bin/python或/bin/python上,上面的#!将失败。

“#!/usr/bin/env python” vs “#!/usr/local/bin/python”


答案 2

这真的只是一个品味问题。添加shebang意味着人们可以根据需要直接调用脚本(假设它被标记为可执行);省略它只是意味着必须手动调用。python

运行程序的最终结果不受影响;它只是手段的选择。