Python源头注释

时间:2009-04-01 20:05:21

标签: python unix shebang

行是什么

#!/usr/bin/env python
用于?

的python脚本的第一行中的

6 个答案:

答案 0 :(得分:24)

在UNIX和Linux中,它告诉哪个二进制文件用作解释器(另请参阅Wiki page)。 例如,shell脚本由/bin/sh解释。

#!/bin/sh

现在有了python,它有点棘手,因为你不能假设二进制文件的安装位置,也不想要使用它。因此/usr/bin/env技巧。它使用$PATH中的第一个python二进制文件。您可以检查执行which python

使用解释器行,您可以通过将其修改为可执行文件来运行脚本。然后运行它。因此,脚本以

开头
#!/usr/bin/env python

这两种方法是等价的:

$ python script.py

和(假设您之前已完成chmod +x script.py

$ ./script.py

这对于创建系统范围的脚本很有用。

cp yourCmd.py /usr/local/bin/yourCmd
chmod a+rx /usr/local/bin/yourCmd

然后你可以从任何地方用

来调用它
yourCmd

答案 1 :(得分:14)

这称为shebang行:

  

在计算中,shebang(也称为hashbang,hashpling或pound bang)指的是字符“#!”当它们是文本文件中的前两个字符时。类Unix操作系统将这两个字符作为文件是脚本的指示,并尝试使用文件中第一行其余部分指定的解释器来执行该脚本。例如,Bourne shell的shell脚本从第一行开始:

答案 2 :(得分:5)

在UNIX和类似的操作系统下,该行告诉如果文件被执行,将使用哪个解释器。

答案 3 :(得分:5)

安德里说。在Windows中,从命令行启动时运行文件的可执行文件依赖于关联:

16:12:40.68 C:\>assoc .py
.py=Python.File

16:13:53.45 C:\>assoc Python.File
Python.File=Python File

16:14:01.70 C:\>ftype Python.File
Python.File="C:\Python30\python.exe" "%1" %*

在Unix中,shell解释器通过打开文件并查看文件中是否有命令来进行推理。

答案 4 :(得分:3)

'/ usr / bin / env python'搜索$ PATH for python并运行它。

  

通常 env 用于设置一些环境变量   一个程序

该行的作用是告诉您的计算机如何处理该文件,如果您只是尝试运行文件而不指定解释程序 .. more detail

答案 5 :(得分:2)

请注意,这一行只不过是对Windows中解释器的评论