Windows 10环境下PowerShell中python命令正常但.sh脚本提示‘python: command not found’的问题排查求助
我之前也碰到过一模一样的情况——Windows PowerShell里python命令跑得好好的,但一到bash脚本里就报错找不到命令,核心原因就是Windows系统的环境变量和bash环境的PATH并不是完全同步的,再加上bash对Windows路径的解析逻辑有差异,才导致了这个问题。下面给你几个实用的解决办法:
方法1:直接用Python的绝对路径调用
先找到你系统里Python的安装路径,比如默认安装的话可能是C:\Python39\python.exe,在bash环境里这个路径要改成/c/Python39/python.exe(把盘符改成小写前缀加斜杠)。然后把脚本里所有的python命令替换成这个绝对路径,比如原来的python convert_data.py改成:
/c/Python39/python.exe convert_data.py
方法2:在脚本开头把Python路径加入bash的PATH
在脚本最顶部添加一行命令,把Python所在的目录添加到bash的环境变量里:
export PATH="$PATH:/c/Python39"
记得把/c/Python39换成你实际的Python安装目录(严格按照bash的路径格式写),这样脚本执行时就能自动找到python命令了。
方法3:给python设置别名映射
在脚本开头加一行别名配置,让bash把python指向Windows的python.exe:
alias python='python.exe'
这样脚本里的python命令就会被bash解析成Windows系统里的Python执行程序。
方法4:检查你的bash环境类型
如果你用的是WSL(Windows子系统Linux)里的bash,那它是独立的Linux环境,和Windows的Python完全不共享,这时候你需要在WSL里单独安装Python(比如用sudo apt install python3);如果是Git Bash这类Windows原生的bash工具,建议重启一下bash窗口再试试,有时候环境变量需要重启才能生效。
优先试试方法1或者3,这两个操作最直接,应该能快速解决你的问题。
内容的提问来源于stack exchange,提问作者luchino_prince

