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 解释器
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/16527695.html,如有侵权联系删除
分类:
python语法功能
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)