<code>./file.py</code>与<code>python file.py</code>命令有什么区别?
./file.py 与 python file.py 的核心差异说明 你的观察有一定合理性,但不是绝对结论:./file.py 是类Unix系统(Linux、macOS等)特有的执行方式,Windows原生环境不支持该用法,所以跨平台场景下用户普遍会用兼容性更强的python file.py。
命令执行逻辑差异
python file.py
属于显式调用Python解释器执行脚本:- 不要求脚本文件拥有可执行权限,只要文件可读即可
- 不依赖脚本首行的shebang声明,直接用你输入的
python对应的解释器版本执行 - 全平台通用,Windows、Linux、macOS都可以正常使用
- 要求
python命令已经加入系统环境变量PATH,或者显式写全Python解释器的路径也可以正常执行
./file.py
属于直接执行可执行文件的逻辑,仅支持类Unix系统,需要满足两个必要前提:- 脚本文件被授予了可执行权限(需要提前执行
chmod +x file.py设置) - 脚本首行必须有shebang声明,比如
#!/usr/bin/env python3,系统会根据这一行找到对应的Python解释器来执行脚本 - 如果缺少任意一个前提,执行都会失败:缺权限会报
Permission denied,缺shebang会被系统默认当成Shell脚本执行,大概率出现语法报错
- 脚本文件被授予了可执行权限(需要提前执行
常见使用场景差异
- 跨平台分发的脚本、入门用户普遍更常用
python file.py,不需要额外配置,兼容性更好 - 类Unix系统下的本地自用脚本、生产环境部署的脚本常用
./file.py的方式,执行更便捷,也可以直接把脚本放到PATH目录下当成系统命令全局调用
内容的提问来源于stack exchange,提问作者Dadá
相关产品推荐
相关产品推荐

