已安装yaml和pyyaml仍报ModuleNotFoundError:M1 Mac Quarto渲染失败
M1 Mac下Quarto渲染QMD时
ModuleNotFoundError: No module named 'yaml'的解决办法 问题场景
在M1芯片Mac的VSCode中使用Quarto,执行命令:
quarto render quarto_vscode.qmd
渲染QMD为HTML时,出现报错:
Starting python3 kernel...Traceback (most recent call last): File "/Applications/quarto/share/jupyter/jupyter.py", line 21, in <module> from notebook import notebook_execute, RestartKernel File "/Applications/quarto/share/jupyter/notebook.py", line 14, in <module> from yaml import safe_load ModuleNotFoundError: No module named 'yaml'
已通过conda list确认虚拟环境中安装了相关包:
pyyaml 6.0.1 py310h2aa6e3c_1 conda-forge yaml 0.2.5 h3422bc3_2 conda-forge
使用的QMD基础测试代码:
--- title: "VSCode Quarto Report" date: "2023-01-07" format: html editor: source include: TRUE echo: TRUE jupyter: python3 --- ```{python} print('hello')
## 问题原因 Quarto默认调用的Python环境并非你激活的conda虚拟环境,M1 Mac多Python环境(系统Python、conda环境等)的路径冲突,导致无法找到已安装的`pyyaml`模块。 ## 解决步骤 ### 1. 获取conda虚拟环境的Python路径 激活目标conda虚拟环境后,在终端执行: ```bash which python3
复制输出的完整路径(例如/Users/xxx/miniconda3/envs/your_env/bin/python3)
2. 指定Quarto使用该Python环境
方式一:临时命令行指定
执行渲染命令时,先绑定环境变量:
QUARTO_PYTHON=/path/to/your/conda/python3 quarto render quarto_vscode.qmd
将/path/to/your/conda/python3替换为你刚才复制的路径。
方式二:永久配置Quarto Python路径
在终端执行:
quarto config set python.executable /path/to/your/conda/python3
配置完成后,后续所有Quarto渲染都会自动使用该conda环境。
3. 验证配置生效
执行以下命令检查Quarto使用的Python环境:
quarto check python
确认输出中的Python路径为你的conda环境路径,且pyyaml被标记为已安装状态。
额外排查(若上述方法无效)
- 检查Quarto版本:确保安装的是适配M1 Mac的arm64版本,而非x86_64版本,可重新下载对应架构的安装包。
- 重新激活环境:关闭终端后重新打开,激活目标conda环境再执行渲染命令。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

