【问题标题】:include cairo R on a mac在 Mac 上包含 cairo R
【发布时间】:2019-03-06 01:05:03
【问题描述】:

我正在尝试在 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        

我不确定为什么会发生这种情况,有什么帮助吗? 谢谢!

【问题讨论】:

  • 您已将quartz 安装为您的主要X11 平台?如果没有,请下载、安装并重新启动计算机。希望这会有所帮助。
  • 谢谢!我不知道,“开罗”是否需要石英?因为我在安装包的时候从来没有遇到过这个问题
  • 我相信它一直都需要它。只是在以前的 Mac 版本上,操作系统附带了一个相当于 X11 平台的平台。但是,最新版本并非如此。这就是为什么你必须自己得到它。你现在可以加载包了吗?
  • 我现在不在电脑旁边,等我回家就去。
  • 我只是补充一点,我只对 Cairo 而不是其他包有问题的原因是因为它是一个处理图形的包,并且“XQuartz 是允许跨平台的必需组件应用程序,其中许多不是专门为 OS X 设计的,可以在其上运行。"Wikipedia

标签: r macos cairo


【解决方案1】:

您应该下载 X11 for Mac,称为 XQuartz。它不再随 OS X 一起提供,因此您必须从以下位置单独下载它:https://www.xquartz.org/

【讨论】:

  • 谢谢!这确实是问题所在。
  • 如果解决了您的问题,请投票作为解决方案,以便其他人可以轻松找到它
  • 我该怎么做?用灰色的向上箭头? (我试过了,但收到一些说明我还不能投票,因为我是新来的......)
  • 我已经删除并重新安装了 XQuartz,但无济于事。我在通过 brew 安装 R 3.4.2 的 macOS High Sierra 上。我正在尝试通过 Bioconductor 安装“scde”。您知道替代解决方案吗?
【解决方案2】:

对于安装 XQuartz 没有解决问题的任何人:

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

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") 就可以了。

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 2015-11-28
    相关资源
    最近更新 更多