python知识库[5]: Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别

栏目:python知识库 作者:admin 日期:2018-10-30 评论:0 点击: 523 次

在Linux环境下,如果我们用普通运行模式例如:python *.py 那么这个语句在此运行模式下无效。如果想让python程序像普通程序一样运行,例如:./*.py (文件要有可执行权限chmod a+x *.py),这个语句就起作用了,它用来为脚本语言指定解释器,通常认为用 #!/usr/bin/env python 要比 #!/usr/bin/python 更好,因为 python 解释器的路径不一定就是/usr/bin/python
#!/usr/bin/env python
这样声明的时候,会去取你机器的 PATH 中指定的第一个 python 来执行你的脚本。
#!/usr/bin/python
表示写死了就是要 /usr/bin/python 这个目录下 python 来执行你的脚本。这样写程序的可移植性就差了,如果此路径下python命令不存在就会报错。所以一般情况还是用第一种写法。

补充:#!/usr/bin/python3 和 #!/usr/bin/env python3的区别

#!/usr/bin/python3是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python3解释器;

#!/usr/bin/env python3,这种用法是为了防止用户没有将python3装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python3的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python3相当于写死了python3路径。#!/usr/bin/env python3会去环境设置寻找python3目录,推荐这种写法。

python知识库[5]: Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别:等您坐沙发呢!

发表评论