我在通过JRI接口加载ggplot2包时遇到问题。ggplot2通过R脚本加载得很好,所以我相信它已经正确安装了。只有当我尝试通过JRI加载它时,才会出现以下错误。
Loading required package: reshape
Loading required package: plyr
Error in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/usr/local/R/lib/R/library/plyr/libs/plyr.so':
ld.so.1: java: fatal: relocation error: file /usr/local/R/lib/R/library/plyr/libs/plyr.so: symbol R_NilValue: referenced symbol not found
Error: package 'plyr' could not be loaded所以ggplot2需要加载plyr包。如果由R脚本运行,此包将加载,但不会从JRI加载。我怀疑这是因为在加载JRI之前没有正确设置环境变量,可能是LD_LIBRARY_PATH。看一下R脚本,我不知道这个路径是在哪里设置的(因为R脚本显然正确地设置了所有环境变量,以便plyr找到所需的R_NilValue符号)。我已经将R脚本中的所有环境变量设置复制到我用来加载JRI的脚本中(以便它正确地设置R_HOME、R_SHARE_DIR、R_INCLUDE_DIR和R_DOC_DIR -在我设置这些环境变量之前,通过JRI加载其他包时也遇到了问题,它解决了这些问题)。然而,这并不能修复错误。此外,我尝试从rJava/JRI -provided运行脚本加载ggplots2包,但仍然得到相同的错误。谁能告诉我R_NilValue是在哪里定义的,我哪里做错了?
我在sparc-sun-solaris2.1032位平台上运行R版本2.13.0,其中包含rJava 0.9-0和ggplot2 0.8.9包。
发布于 2011-09-13 03:54:47
这意味着包中存在不匹配。换句话说,有为静态R构建的包,这些包与为动态R构建的包一起使用。重新安装包应该可以解决这个问题。
https://stackoverflow.com/questions/7348336
复制相似问题