Windows平台Python 3.11中py.exe解析#!/usr/bin/env python3异常
Windows下Python 3.11的py.exe处理
#!/usr/bin/env python3时的异常问题 核心现象
当Python脚本开头使用shebang语句 #!/usr/bin/env python3 时,Windows平台的Python 3.11会出现执行异常:
- 直接运行脚本(
myscript或myscript.py)无响应或触发错误 - 通过
py myscript.py调用脚本时,会弹出错误提示:
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
以下两种方式可正常执行脚本:
- 给
py.exe添加任意参数,例如py -3 myscript.py或py -b myscript.py - 将shebang语句修改为
#!/usr/bin/env python
测试验证结果
- Python 3.10(64位Windows):运行带有
#!/usr/bin/env python3的myscript1.py,可正常输出版本信息 - Python 3.11(64位Windows):直接运行或通过
py调用脚本触发错误,但直接使用Python 3.11的python.exe二进制文件调用脚本可正常执行 - 使用Python 3.10的py launcher(
py310)调用该脚本,可正常执行
结论
该现象疑似Python 3.11配套的py.exe存在shebang处理逻辑的bug。
内容的提问来源于stack exchange,提问作者James S.
相关产品推荐
相关产品推荐

