macOS Big Sur下R安装Cairo包提示找不到cairo.h该如何解决
macOS环境下R安装Cairo包的解决方案
问题原因
安装失败的核心是R的编译环境无法识别你通过brew/macport安装的cairo库路径,且macOS自Catalina版本起默认shell改为zsh,因此你找不到旧教程里提到的.bashrc配置文件。
解决方案
方案1:conda环境直接安装(推荐,适合conda管理R环境的用户)
你当前使用的是conda的seurat4环境,直接通过conda安装预编译的Cairo包即可,无需手动处理编译依赖:
# 先激活你的seurat4环境 conda activate seurat4 # 安装r-cairo conda install -c conda-forge r-cairo
方案2:临时指定编译参数安装(无需修改配置文件)
如果要直接在R中编译安装,执行安装命令时直接传入cairo的路径参数即可:
- 若你是用brew安装的cairo,在R控制台执行:
install.packages("Cairo", configure.args = c( CAIRO_CFLAGS = paste0("-I", system("brew --prefix cairo", intern = TRUE), "/include/cairo"), CAIRO_LIBS = paste0("-L", system("brew --prefix cairo", intern = TRUE), "/lib -lcairo") ))
- 若你是用macport安装的cairo,在R控制台执行:
install.packages("Cairo", configure.args = c( CAIRO_CFLAGS = "-I/opt/local/include/cairo", CAIRO_LIBS = "-L/opt/local/lib -lcairo" ))
方案3:永久配置环境变量
如果需要长期生效,可将路径写入你当前shell的配置文件:
- 确认你当前使用的shell,在终端执行
echo $SHELL,如果输出为/bin/zsh,则配置文件为~/.zshrc,如果为/bin/bash则是~/.bash_profile - 编辑对应配置文件,添加两行内容(以brew安装的cairo为例):
export CAIRO_CFLAGS="-I$(brew --prefix cairo)/include/cairo" export CAIRO_LIBS="-L$(brew --prefix cairo)/lib -lcairo"
- 在终端执行
source ~/.zshrc(或对应配置文件)使配置生效,重新打开R即可正常安装Cairo包。
内容的提问来源于stack exchange,提问作者Thomas Lordick
相关产品推荐
相关产品推荐

