#!/usr/bin/python3 和 #!/usr/bin/env python3 的区别

原文: Python3 教程

   tengjiexx å�‚考文章

脚本语言的第一行,目的就是指出,你想�你的这个文件中的代�用什么�执行程�去�行它,就这么简�。

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

#!/usr/bin/env python3 这�用法是为了防止�作系统用户没有将 python3 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python3 的安装路径,�调用对应路径下的解释器程�完��作。

#!/usr/bin/python3 相当于写死了 python3 路径;

#!/usr/bin/env python3 会去环境设置寻找 python3 目录,推�这�写法。

更多解�

  dragonv

关于脚本第一行的 #!/usr/bin/python 的解释,相信很多�熟悉 Linux 系统的�学需�普�这个知识,脚本语言的第一行,�对 Linux/Unix 用户适用,用�指定本脚本用什么解释器�执行。

有这�的,加上执行���,�以直接用 ./ 执行,�然会出错,因为找�到 python 解释器。

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

#!/usr/bin/env python 这�用法是为了防止�作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,�调用对应路径下的解释器程�完��作。

#!/usr/bin/python 相当于写死了 python 路径。

#!/usr/bin/env python 会去环境设置寻找 python 目录,�以增强代�的�移�性,推�这�写法。

分�两�情况:

(1)如果调用 python 脚本时,使用:

python script.py 

#!/usr/bin/python 被忽略,等�于注释

(2)如果调用python脚本时,使用:

./script.py 

#!/usr/bin/python 指定解释器的路径

PS:shell 脚本中在第一行也有类似的声明。