Win10开启WSL后R Studio中R Markdown无法调用BASH问题求助
问题原因
你运行的RStudio属于Windows原生程序,默认仅能识别Windows系统环境变量路径下的可执行文件。你安装的bash归属于WSL Ubuntu子系统环境,未被Windows默认纳入可调用程序范围,因此knitr执行bash代码块时找不到对应可执行文件触发报错。
可行解决方案
- 方案1:当前R Markdown文档单独配置
在文档最开头添加R代码块,指定bash引擎的调用路径:
knitr::opts_chunk$set(engine.path = list( bash = "wsl bash" ))
该配置会要求knitr通过Windows自带的wsl命令唤醒子系统内的bash程序执行代码。
- 方案2:适配32位R/RStudio
如果安装的是32位版本的R/RStudio,受Windows系统路径重定向机制限制,无法直接访问System32目录下的程序,需修改配置为:
knitr::opts_chunk$set(engine.path = list( bash = "C:/Windows/Sysnative/bash.exe" ))
- 方案3:全局永久生效
如果需要所有R Markdown文档默认支持bash代码块,可将上述配置代码添加到用户家目录的.Rprofile文件中,重启RStudio后配置永久生效。
注意事项
通过WSL调用bash执行代码时,Windows本地磁盘会被挂载到子系统的/mnt/目录下,例如C盘对应路径为/mnt/c、D盘对应/mnt/d,编写代码时需使用Linux格式的路径,避免路径识别错误。
验证方法
修改配置后先在R控制台执行命令测试:system("wsl bash -c 'pwd'")
如果能正常输出路径,说明WSL bash调用正常,此时再执行knit操作即可正常生成文档。
内容的提问来源于stack exchange,提问作者CyberGeneticist
相关产品推荐
相关产品推荐

