有同学问我,在一些教程中,在Python文件的行首会写上#!/usr/bin/python3这样的语句,这有什么用?
这个问题可能不少初学者也会遇到,实际上它的作用是用来指定Python的解释器,并用只能应用于Linux、Mac等系统中,Windows系统会忽略这个注释(集体鄙视Windows的感觉)。也就是说,如果这个Python文件在系统是具有可执行权限的,那么可以直接用./XXX.py的方式来执行,系统会自动地根据这个绝对路径下调用python3程序对其进行解释执行。所以它实际上是指示了在当前系统中python3命令的路径,如果你不写或者是写错了,那么系统会给出找不到解释器的错误。
但是这里会有一个问题,就是有时会不清楚解释器的具体全路径,或者说开发者的环境与最终使用者的安装路径不一样,就比较麻烦了。所以很多的时候,其实我们会用另一种方式,即·#!/usr/bin/env python3`,这里作用就是让env去查找python3的绝对路径替换作为解释器路径。
举个例子,假设我们创建一个temp.py的文件,内容如下:
#!/usr/bin/env python3
for i in range(10):
print("Iteration:",i)
保存后,执行以 下命令:
chmod +x temp.py #增加执行权限
./temp.py #运行脚本
你会发现程序会自动运行出结果,和我们使用python3 temp.py效果是一样的。

本文首发于浙江省阮高峰名师工作室(http://gzs.ilester.net)
本文解析了在Linux和Mac系统中,如何通过在Python脚本首行指定#!/usr/bin/env python3来自动定位Python3解释器的路径,确保脚本能够正确执行。这种方式避免了直接指定解释器路径可能带来的问题。

3万+

被折叠的 条评论
为什么被折叠?



