Python源头注释

Ale*_*lex 8 python unix shebang

什么是线

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

在python脚本的第一行用于?

var*_*tec 23

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

#!/bin/sh
Run Code Online (Sandbox Code Playgroud)

现在使用python它有点棘手,因为你不能假设二进制文件的安装位置,也不想要使用它.这样的/usr/bin/env伎俩.它使用的是第一个python二进制文件$PATH.你可以检查一下执行情况which python

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

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

这两种方法是等价的:

$ python script.py
Run Code Online (Sandbox Code Playgroud)

并且(假设你早些时候已经完成chmod +x script.py)

$ ./script.py
Run Code Online (Sandbox Code Playgroud)

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

cp yourCmd.py /usr/local/bin/yourCmd
chmod a+rx /usr/local/bin/yourCmd
Run Code Online (Sandbox Code Playgroud)

然后你可以随时随地调用它

yourCmd
Run Code Online (Sandbox Code Playgroud)


Pao*_*ino 14

这被称为shebang线:

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


and*_*dri 5

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


hug*_*own 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" %*
Run Code Online (Sandbox Code Playgroud)

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