在Mac OS中,R中的rgl包无法加载

9

我在 R(3.6.3)中安装了rgl包(0.104.16),但它无法加载。我没有收到任何错误信息,只是一直在加载。我尝试重新安装 R、RStudio 和 Xquartz,但都没用。我的 Mac OS 版本是 Catalina 10.15.7。 非常感谢您的帮助! 谢谢。

2个回答

14

编辑以添加新细节和建议的修复。

这似乎是因为2.8.0beta版Xquartz存在问题,该版本于2月初发布。存在两个问题:

  • 它对libX11.6.dylib进行了不兼容的更改,因此针对2.7.11版本构建的程序(例如rgl的CRAN二进制文件)将无法工作。如果您从源代码生成rgl(以及所有其他使用X11的内容),可能会没问题,对我来说就没问题。

  • 当您卸载它时,它会留下两个在启动时运行的程序:/Library/LaunchDaemons/org.xquartz.startx.plist(在重新启动系统时运行)和/Library/LaunchAgents/org.xquartz.startx.plist(在登录时运行)。如果您随后安装2.7.11,则这些程序将无法运行(可能是由于上述提到的libX11更改)。此时,X11中的任何功能都无法使用。

因此,解决方案似乎如下:

  • 通过将其从Applications/Utilities文件夹拖到垃圾桶中卸载XQuartz。
  • 通过在R中运行remove.packages("rgl")来卸载rgl
  • /Library/LaunchDaemons/Library/LaunchAgents中删除名为org.xquartz.startx.plist的这两个文件。
  • 重新启动系统以删除从这些文件启动的进程。
  • 重新安装XQuartz 2.7.11。
  • 从CRAN或源代码重新安装rgl

如果我错了,那么只要您的rgl版本至少为0.105.12(但不会给您任何rgl窗口),这几乎肯定可以解决问题:

# Start a new session
options(rgl.useNULL = TRUE)
library(rgl)

要查看您的显示内容,请运行rglwidget()函数,它们将在浏览器或RStudio查看器窗格中显示。


1
这个解决方案在手动安装rgl包时似乎有效。但是,在Github Actions的R_CMD_check期间,当rgl作为依赖项安装时,是否有一种实现此解决方案的方法?(如果这是一个愚蠢的问题,请原谅我) - yasel
3
在您的操作的 env: 部分设置环境变量 RGL_USE_NULL: true,这样就不会出现问题了。 - user2554330
我该如何找到在Mac上删除Quartz的应用程序/实用工具?或者换句话说:如果我甚至在我的电脑上都找不到这个文件,我该如何知道它在哪里。我相当确定它是导致我当前问题的原因。 - canIchangethis
@canIchangethis:应用程序通常在Finder中列为“收藏夹”。如果它不在那里,它应该在您主驱动器的根目录下的/Applications中。Applications/Utilities是其中一个文件夹。 - user2554330
哦,谢谢!我找到它了 - 由于某种原因,在我的 Mac 的语言中它被命名为不同的名称。 - canIchangethis
显示剩余2条评论

2
我安装了 XQuartz 2.8.5,并重新启动了我的 M1 Mac,现在可以安装并运行 rayshader 演示。问题似乎是因为 rgl 只有 x386 库,而没有 ARM 库(或者至少没有对应的别名),但安装最新的 XQuartz 解决了这个问题,而不需要手动删除文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接