发布时间:2019-09-27 07:09:51编辑:auto阅读(2751)
原文:https://finthon.com/python-shebang/
在Python脚本的第一行,常常能看到#!/usr/bin/env python3或者#!/usr/bin/python3字样,其中#!符号在计算机行业中叫做 “Shebang”,  其作用是指定由哪个解释器来执行脚本。在这里即是指定python3作为解释器。
windows系统是根据文件后缀决定打开方式的,因此首行Shebang是没有用的,只有类unix系统才是根据文件头决定脚本运行方式。
在 类Unix 系统中 :
python3 ./script.py,这种方式脚本中就可以不添加Shebang行;./script.py,这种方式就需要脚本的第一行如果写上 #!/usr/bin/python3 或者是#!/usr/bin/env python3,  shell 会检查脚本的第一行代码, 发现有Shebang, 会按其指定的解释器来执行,在这里就是用python3 解释器来执行;#!/usr/bin/python3 或者是#!/usr/bin/env python3, 但是在命令行输入python2 ./script.py,最终是以python2解释器来执行。
它的结果为:

注意两点:
#!之后的空格是可选的,#!/usr/bin/env python3和 #! /usr/bin/env python3 这两种写法都可以;#!/usr/bin/python3采用了绝对路径的写法,即指定了采用/usr/bin/python3该路径下的解释器来执行脚本。如果python3解释器不在该路径下的话(用anaconda安装的话有可能不在),./script.py 就无法运行。
而 #!/usr/bin/env python3 的写法指定从PATH环境变量中查找python解释器的位置,因此只要环境变量中存在,该脚本即可执行。所以一般情况下采用 #!/usr/bin/env python3 的写法更好,容错率更高。
上一篇: python3 下没办法运行sqlalc
下一篇: linux 安装python3
 51197
 50616
 41238
 38053
 32516
 29423
 28283
 23142
 23098
 21436
 1493°
 2206°
 1830°
 1759°
 2067°
 1817°
 2502°
 4200°
 4063°
 2899°