You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1环境下Jupyter Notebook中rpy2导入失败求助

Mac M1下Jupyter Notebook导入rpy2失败但终端正常的解决建议

问题场景

Mac M1芯片环境中,在JupyterLab(版本3.6.5)执行from rpy2.robjects.packages import importr时出现错误,但在终端运行相同Python代码无异常。本地同时存在ARM版R(路径/opt/R/arm64/)和Intel版R(路径/opt/R/x86_64/),使用的conda环境为ds_project。

报错信息

执行导入语句时,先出现以下错误:

Unable to determine R library path: Command '('/Users/mydir/miniconda3/envs/ds_project/lib/R/bin/Rscript', '-e', 'cat(Sys.getenv(&quot;LD_LIBRARY_PATH&quot;))')' died with <Signals.SIGABRT: 6>.

随后出现动态库加载失败错误:

OSError: cannot load library '/Users/mydir/miniconda3/envs/ds_project/lib/R/lib/libR.dylib': dlopen(/Users/mydir/miniconda3/envs/ds_project/lib/R/lib/libR.dylib, 0x0002): Library not loaded: '@rpath/libblas.3.dylib'
Referenced from: '/Users/mydir/miniconda3/envs/ds_project/lib/R/lib/libR.dylib'
Reason: tried: '/Users/mydir/miniconda3/envs/ds_project/lib/R/lib/libblas.3.dylib' (no such file), '/Users/mydir/miniconda3/envs/ds_project/lib/R/lib/../../libblas.3.dylib' (no such file), '/Users/mydir/miniconda3/envs/ds_project/lib/R/lib/libblas.3.dylib' (no such file), '/Users/mydir/miniconda3/envs/ds_project/lib/R/lib/../../libblas.3.dylib' (no such file), '/Users/mydir/miniconda3/envs/ds_project/lib/python3.11/site-packages/../../libblas.3.dylib' (no such file), '/Users/mydir/miniconda3/envs/ds_project/bin/../lib/libblas.3.dylib' (no such file), '/usr/local/lib/libblas.3.dylib' (no such file), '/usr/lib/libblas.3.dylib' (no such file)

已尝试的无效方法

  • 通过conda安装r-base、r-essentials
  • 手动设置R_HOME环境变量指向conda环境中的R路径
  • 排查过GitHub上Intel版R与M1兼容的issue,但当前错误不匹配

解决建议

1. 确认Jupyter使用正确的conda环境内核

  • 在终端执行jupyter kernelspec list,查看是否存在ds_project对应的内核;若没有,执行以下命令添加:
    conda activate ds_project
    python -m ipykernel install --user --name ds_project --display-name "Python (ds_project)"
    
  • 重启JupyterLab,切换到Python (ds_project)内核后重试导入操作。

2. 强制Jupyter使用ARM版R

方法一:在Notebook开头设置环境变量

在导入rpy2前添加以下代码:

import os
# 指定ARM版R的安装路径
os.environ['R_HOME'] = '/opt/R/arm64/'
# 配置动态库搜索路径
os.environ['LD_LIBRARY_PATH'] = '/opt/R/arm64/lib:' + os.environ.get('LD_LIBRARY_PATH', '')
os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = '/opt/R/arm64/lib:' + os.environ.get('DYLD_FALLBACK_LIBRARY_PATH', '')

# 再执行导入
from rpy2.robjects.packages import importr

方法二:启动Jupyter前在终端设置环境变量

在终端执行以下命令后启动JupyterLab:

conda activate ds_project
export R_HOME=/opt/R/arm64/
export LD_LIBRARY_PATH=/opt/R/arm64/lib:$LD_LIBRARY_PATH
export DYLD_FALLBACK_LIBRARY_PATH=/opt/R/arm64/lib:$DYLD_FALLBACK_LIBRARY_PATH
jupyter-lab

3. 修复conda环境中R的依赖缺失

报错显示缺少libblas.3.dylib,可尝试以下操作:

  • 安装OpenBLAS依赖:
    conda activate ds_project
    conda install -c conda-forge openblas
    
  • 重新安装conda环境中的R:
    conda activate ds_project
    conda remove r-base r-essentials
    conda install -c conda-forge r-base r-essentials
    

4. 检查VSCode的环境配置

  • 若使用VSCode的Jupyter插件,点击左下角的Python解释器选择器,确保选中ds_project环境下的Python解释器。
  • 关闭VSCode后重新打开,确保环境变量和配置生效后重试。

内容的提问来源于stack exchange,提问作者user1237300

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 13:35:35