Win11中无法运行.sh/.ps1脚本及Python执行报错问题求助
问题排查与解决
一、直接运行.sh/.ps1脚本时提示「Python was not found」的原因及解决
这个错误是Windows 11的App Execution Aliases机制导致的:系统默认添加了指向Microsoft Store的python/python3别名,优先级比你实际安装的Python更高,所以shell调用python3时会触发这个提示。
解决方法:
- 打开Windows设置 → 应用 → 应用执行别名
- 找到「Python.exe」和「Python3.exe」对应的开关,把它们关掉
- 之后重新打开Bash/PowerShell窗口,再次运行脚本即可调用你本地安装的Python 3.11.4
另外,也可以在脚本里直接写Python的绝对路径(比如D:\Python311\python.exe -c "print(1)"),跳过别名的影响。
二、用py test.ps1或py test.sh出现语法错误的原因及解决
py是Python的启动器,它的作用是运行Python脚本(.py文件),而你给它的.ps1是PowerShell脚本、.sh是Bash脚本,这些脚本里的内容是shell命令,不是Python代码,所以py会把它们当成Python语法解析,自然报语法错误。
正确的运行方式:
- PowerShell脚本:在PowerShell里执行
./test.ps1(注意要先设置执行策略,比如Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,按提示确认) - Bash脚本:在WSL的Bash或Git Bash等环境里执行
./test.sh
内容的提问来源于stack exchange,提问作者Vasee Aleem
相关产品推荐
相关产品推荐

