为了账号安全,请及时绑定邮箱和手机立即绑定

Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 有区别吗?

Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 有区别吗?

喵喵时光机 2019-04-16 20:25:40
许多python文件的头部都会写上:#!/usr/bin/python或者#!/usr/bin/envpython这行是拿来作甚的?有区别吗?好像没有这一行代码也能正常运行啊。
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

如果你用pythonxxoo.py来运行,那么写不写都没关系,如果要用./xxoo.py那么就必须加这行,这行被称为shebang,用来为脚本语言指定解释器.
通常认为用#!/usr/bin/envpython要比#!/usr/bin/python更好,因为python解释器有时并不安装在默认路径,例如在virtualenv中。
                            
查看完整回答
反对 回复 2019-04-16
?
侃侃无极

TA贡献2051条经验 获得超10个赞

第一种写法:
#!/usr/bin/python
表示写死了就是要/usr/bin/python这个目录下python来执行你的脚本。
第二种写法:
#!/usr/bin/env
这种写法在你机器上安装了多个版本的python的时候有意义,这样声明的时候,会去取你机器的PATH中指定的第一个python来执行你的脚本。如果这时候你又配置了虚拟环境的话,那么这样写可以保证脚本会使用你虚拟环境中的python来执行。
所以这样看来,只有第二种方法才是正确的写法。
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 339 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号