Python文件行首的#!/usr/bin/python3有何用?

有同学问我,在一些教程中,在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

  • 16
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值