You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Git Bash中如何让py解释器优先执行带shebang的Python脚本?

问题:Windows Git Bash下让带shebang的Python脚本优先使用py解释器

环境与现象

Windows系统使用C:\Program Files\Git\bin\bash.exe,已安装两个Python版本:

$ py --version
Python 3.10.11

$ which py
/c/Users/Username/AppData/Local/Programs/Python/Launcher/py

$ python3 --version
Python 3.9.10

$ which python3
/c/ProgramData/chocolatey/bin/python3

测试脚本shebang.py内容:

#!/usr/bin/env python3
import sys
print(sys.version)

执行py shebang.py或./shebang.py时,输出Python 3.9.10(实际调用python3解释器);移除shebang行后,py shebang.py会使用Python 3.10.11(py解释器)。

解决方案

1. 修改shebang直接指向py启动器

这是最直接可靠的方法,将脚本的shebang行替换为:

#!/usr/bin/env py

如果担心env无法找到py,可以写绝对路径确保准确:

#!/c/Users/Username/AppData/Local/Programs/Python/Launcher/py

这样无论用./shebang.py还是py shebang.py执行,都会调用py启动器,默认使用3.10版本。如果需要指定特定版本,还可以写成:

#!/usr/bin/env py -3.10

2. 给python3设置别名指向py启动器

在Git Bash的配置文件~/.bashrc中添加别名:

alias python3='py'

保存后重启Git Bash,此时#!/usr/bin/env python3会调用py启动器。注意这种方法仅对当前用户的Git Bash生效,若有其他脚本依赖python3为3.9版本,可能引发冲突。

3. 调整PATH优先级+重命名py启动器(可选)

把py启动器所在目录/c/Users/Username/AppData/Local/Programs/Python/Launcher/移到PATH环境变量最前端,然后将该目录下的py.exe复制并重命名为python3.exe。这样#!/usr/bin/env python3会优先找到这个python3.exe(即py启动器)。不过这种方法可能影响其他依赖python3的工具,需谨慎操作。

内容的提问来源于stack exchange,提问作者coincoin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 23:47:26