Quarto中execute-dir参数project与file选项的差异及实测疑问
Quarto execute-dir 选项问题解答
核心原因:Quarto项目根目录的识别逻辑
Quarto的execute-dir: project选项中的「项目根目录」,不是以.rproj文件为判断依据,而是通过以下优先级识别:
- 首先向上遍历目录,寻找Quarto项目标识文件:
_quarto.yml、_book.yml或.quarto目录 - 如果找不到上述文件,Quarto会将当前.qmd文件所在的目录当作项目根
你的情况中,/Users/benc/projects/ms2目录下没有Quarto项目配置文件,所以Quarto把包含execute-dir_test.qmd的/Users/benc/projects/ms2/src/poc/quarto识别为项目根,导致设置execute-dir: project时工作目录不符合预期。
解决步骤
- 指定Quarto项目根:在
/Users/benc/projects/ms2目录下创建一个空的_quarto.yml文件(或添加项目配置内容),内容可以是:# 空Quarto项目配置,用于标识项目根 - 验证设置:重新在RStudio中Render你的
execute-dir_test.qmd,此时execute-dir: project会将工作目录设为/Users/benc/projects/ms2。
关于execute-dir: file的注意事项
execute-dir: file强制使用当前.qmd文件所在目录作为工作目录。如果之前修改后工作目录未变化,可能是以下原因:
- RStudio未重新加载Quarto配置,尝试重启RStudio
- Quarto缓存未清除,删除当前目录下的
_freeze目录后重新Render
内容的提问来源于stack exchange,提问作者Ben Carlson
相关产品推荐
相关产品推荐

