在mac上包含cairo R.

问题描述 投票:8回答:2

我正在尝试在Rstudio中使用'Cairo'包,使用命令install.packages('Cairo')并且它没有问题。我收到这条消息 -

The downloaded binary packages are in
/var/folders/xn/c1nj85gx62b89876s15sbv9h0000gn/T//RtmpK9JM0l/downloaded_packages 

包出现在包列表中,但是当我尝试使用library(Cairo)library('Cairo')包含包时,我得到此错误信息 -

Error : .onLoad failed in loadNamespace() for 'Cairo', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/Cairo/libs/Cairo.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/Cairo/libs/Cairo.so, 6): Library not loaded: /opt/X11/lib/libXrender.1.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/Cairo/libs/Cairo.so
  Reason: image not found
Error: package or namespace load failed for ‘Cairo’

sessionInfo()

R version 3.3.1 (2016-06-21)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)

locale:
[1] he_IL.UTF-8/he_IL.UTF-8/he_IL.UTF-8/C/he_IL.UTF-8/he_IL.UTF-8

attached base packages:
[1] stats4    parallel  stats     graphics  grDevices utils     datasets  methods  
[9] base     

other attached packages:
[1] GenomicRanges_1.24.2 GenomeInfoDb_1.8.3   IRanges_2.6.1       
[4] S4Vectors_0.10.2     ggbio_1.20.2         BiocGenerics_0.18.0 
[7] ggplot2_2.1.0        BiocInstaller_1.22.3 shiny_0.13.2        

我不确定为什么会这样,有什么帮助吗?谢谢!

r macos cairo
2个回答
13
投票

您应该下载X11 for Mac,名为XQuartz。它不再附带OS X,因此您必须单独下载:https://www.xquartz.org/


2
投票

对于安装XQuartz并未解决问题的任何人:

检查以“Library not loaded:...”开头的错误消息部分。例如,在用户的问题中,错误消息包含以下行:

dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/Cairo/libs/Cairo.so, 6): Library not loaded: /opt/X11/lib/libXrender.1.dylib

注意这部分:

Library not loaded: /opt/X11/lib/libXrender.1.dylib

这是关于XQuartz的线索。

然而,在我的情况下,它指定没有加载libjpeg,如下所示:

Error: package or namespace load failed for ‘Cairo’:
 .onLoad failed in loadNamespace() for 'Cairo', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/local/lib/R/3.5/site-library/Cairo/libs/Cairo.so':
  dlopen(/usr/local/lib/R/3.5/site-library/Cairo/libs/Cairo.so, 6): Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib
  Referenced from: /usr/local/lib/R/3.5/site-library/Cairo/libs/Cairo.so
  Reason: image not found
Error: loading failed

注意这部分:

Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib

为了解决这个问题,我不得不跑

brew unlink libjpeg; brew reinstall libjpeg

让它工作。然后,我必须为libtiff做同样的事情:

brew unlink libtiff; brew reinstall libtiff

修复这两个库后,运行install.packages("Cairo")工作。

© www.soinside.com 2019 - 2024. All rights reserved.