shebang
# encoding:utf-8
# encoding:utf-8
是注释,但 python 看到这句话就知道了接下来应该用 utf-8 对该 *.py 文件进行解码了。
#!/usr/bin/python
如果直接采用 python file.py 的方式运行脚本的话,有没有 shebang 都无所谓,因为我们自己直接指定了该脚本的解释器,即 python。
通常我们认为 #!/usr/bin/python 采用了绝对路径的写法,即指定了采用/usr/bin/python 解释器来执行该脚本。一般类Unix系统下,python解释器都位于该路径,不幸的是如果python解释器不在该路径下的话,./file.py 就无法运行。而 #!/usr/bin/env python 的写法指定从PATH环境变量中来查找python解释器的位置,因此只要环境变量中存在,该脚本即可执行。