Win10下Bash on Ubuntu环境中PyCharm运行bash脚本报错的解决方法
可以在PyCharm中运行Bash脚本,你的问题出在路径格式不兼容上
当然没问题!你遇到的No such file or directory错误,核心原因是Windows路径格式在WSL的Bash环境里不被识别——WSL会把Windows的盘符挂载到/mnt目录下,比如你的E盘对应/mnt/e,而PyCharm默认传了Windows风格的E:/...路径,Bash自然找不到文件。
下面是两种解决方法,从单脚本配置到全局设置都有:
方法一:修改单个脚本的运行配置
- 打开PyCharm,找到你的
helloworld.sh脚本,右键选择「Run 'helloworld.sh'」,或者通过顶部菜单栏「Run → Edit Configurations」打开配置界面 - 在配置窗口中,选择「Shell Script」类型的配置:
- Interpreter:选择
C:\WINDOWS\system32\bash.exe(你当前用的这个路径是对的) - Script path:把Windows路径转换成WSL格式,比如把
E:/MyCodes/shell/hello-sh/hello.sh改成/mnt/e/MyCodes/shell/hello-sh/hello.sh(注意盘符小写,斜杠方向换成Linux风格) - 可选:在「Interpreter options」里添加
-l参数,让Bash以登录模式运行,确保加载所有环境变量
- Interpreter:选择
- 保存配置后,再次运行脚本就能正常执行了
方法二:全局配置WSL Bash作为默认解释器(一劳永逸)
如果你经常在PyCharm里运行WSL的Bash脚本,可以直接把WSL Bash设为默认解释器,PyCharm会自动帮你转换路径:
- 打开PyCharm的设置(File → Settings,快捷键
Ctrl+Alt+S) - 导航到「Languages & Frameworks → Shell Script → BashSupport → Interpreters」
- 点击右上角的「+」按钮,选择「WSL Bash」选项
- 在弹出的窗口中,选择你安装的Ubuntu发行版,PyCharm会自动识别WSL的Bash路径和路径转换规则
- 把这个新添加的WSL Bash设为默认解释器(点击列表里的它,再点「Set as Default」)
- 之后不管运行哪个脚本,PyCharm都会自动把Windows路径转换成WSL能识别的
/mnt/xxx格式,不用再手动修改路径
额外注意事项
- 先手动验证脚本:打开Windows的命令提示符,输入
bash进入WSL环境,然后执行bash /mnt/e/MyCodes/shell/hello-sh/hello.sh,确认脚本本身能正常运行,排除脚本语法或权限问题 - 如果你用的是WSL2,路径转换逻辑和WSL1一致,但要确保WSL2的Ubuntu发行版已经正常启动
- 虽然你用的是PyCharm 2017,只要BashSupport插件适配这个版本,上述配置就能生效
内容的提问来源于stack exchange,提问作者Allis Gao
相关产品推荐
相关产品推荐

