为什么Python 脚本的第一行需要写 #!/usr/bin/env python?

Python #!/usr/bin/env

经常在 Python 文件的顶部看到了这些:

#!/usr/bin/env pythonCode language: JavaScript (javascript)

或者

#!/usr/bin/env python3Code language: JavaScript (javascript)

那么这个声明主要的作用是啥呢

上面的声明就是所谓的shebang, shebang(也称为 hashbang、hashpling、pound bang 或 crunchbang)指的是字符“#!” 它们是解释器指令中的前两个字符时,作为文本文件的第一行。
在类 Unix 操作系统中,程序加载器将这两个字符的存在作为文件是脚本的指示,并尝试使用文件中第一行其余部分指定的解释器执行该脚本。

如果安装了多个版本的 Python,/usr/bin/env将确保使用的解释器是您环境的$PATH. 另一种方法是硬编码#!/usr/bin/python; 不太灵活。

为了运行python脚本,我们需要告诉shell三件事:

  • 该文件是一个脚本
  • 我们要执行脚本的解释器
  • 所述解释器的路径

这就是shebang 行的作用

发表评论