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

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

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

慕桂英3389331 2019-04-14 09:51:17
许多python文件的头部都会写上:#!/usr/bin/python或者#!/usr/bin/envpython这行是拿来作甚的?有区别吗?好像没有这一行代码也能正常运行啊。
查看完整描述

2 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

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

TA贡献1836条经验 获得超5个赞

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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信