行是什么
#!/usr/bin/env python
用于?的python脚本的第一行中的
答案 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中解释器的评论。