python脚本指定python解释器

在 Python 脚本的第一行经常见到这样的注释:#!/usr/bin/env python3或者#!/usr/bin/python3,其目的就是指定该python脚本需要用到的解释器是python。

语法

在脚本中, 第一行以 #! 开头的代码, 在计算机行业中叫做 “shebang”, 其作用是"指定由哪个解释器来执行脚本".

语法格式:

#!/usr/bin/env python3
或者
#!/usr/bin/python3

那么,这两者有区别吗?

#!/usr/bin/python3
用绝对路径的格式指定解释器,上面表示当前系统中 python3 解释器所处的绝对路径就是 /usr/bin/python3。
 

弊端:

如果当前系统 python 解释器不在该路径下的话, 脚本将无法执行了!
之所以有这种写法, 是因为在类 Unix 系统中, python 解释器通常位于这个路径。

#!/usr/bin/env/ python3"PATH 环境变量"中查找 python3 解释器的位置, 再调用该路径下的解释器来执行脚本。
 

因此,#!/usr/bin/env python3 的写法更灵活更具有通用性,推荐使用这种写法。

作用

在 "Unix -like 系统"中 (比如Linux, OS X等),如果是通过命令行 (shell) 执行脚本,有两种形式:

以命令行形式指定解释器: python3 ./script.py;
通过 shebang 来指定解释器。比如 python 脚本的第一行如果写上 #!/usr/bin/python3 或者是
#!/usr/bin/env python3,就表示用 python3 解释器来执行, 然后用命令行直接调用文件。
./my_script.py, shell 会检查脚本的第一行代码, 发现有 shebang, 会按其指定的解释器来执行;

注意:"命令行指定""shebang 指定"优先级更高,即如果通过shebang指定了解释器,但是执行时又通过命令行指定一个解释器,那么以命令行指定为准。
 

拓展

在linux系统中经常碰到用shebang指定shell脚本的解释器。

#!/bin/sh
表示用 Bourne shell 来执行脚本,如果系统中没有 sh, 会选择兼容的 shell 解释器
#!/bin/bash
表示用 Bash shell 来执行,如果系统中没有 bash, 会选择兼容的 shell 解释器
 
 
posted @   海_纳百川  阅读(1878)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
本站总访问量8949853
 
点击右上角即可分享
微信分享提示