2

希望有人可以帮助解决这个问题。

R版本:2.14.1
rpy2版本:2.2.5
python版本:2.7.3

一直在尝试在 python 脚本中使用 rpy2 加载具有 rJava 作为依赖项的 R venneuler 包。venneuler 和 rJava 都成功地从 R 环境中加载。其他 R 库,例如“stats”、“car”等,可以使用 rpy2 中的 importr 在 python 中加载。

Python代码:

 >from rpy2 import robjects  
 >from rpy2.robjects.packages import importr  
 >venn=importr('venneuler')

这给出了以下错误:

Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called ‘venneuler’
Error in .Primitive("as.environment")("package:venneuler") : 
  no item called "package:venneuler" on the search list
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/rpy2/robjects/packages.py", line 117, in importr
    env = _as_env(rinterface.StrSexpVector(['package:'+name, ]))
rpy2.rinterface.RRuntimeError: Error in .Primitive("as.environment")("package:venneuler") : 
  no item called "package:venneuler" on the search list

在排查过程中,我尝试使用importr直接加载rJava:

>java=importr('rJava')

得到以下错误,

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/home/adam/R/x86_64-pc-linux-gnu-library/2.14/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory
Error in .Primitive("as.environment")("package:rJava") : 
  no item called "package:rJava" on the search list
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/rpy2/robjects/packages.py", line 117, in importr
    env = _as_env(rinterface.StrSexpVector(['package:'+name, ]))
rpy2.rinterface.RRuntimeError: Error in .Primitive("as.environment")("package:rJava") : 
  no item called "package:rJava" on the search list

当我检查'/home/adam/R/x86_64-pc-linux-gnu-library/2.14/rJava/libs/rJava.so'时,它存在并且似乎正确链接到java动态库(例如ldd rJava.so) .

关于如何解决这个问题的任何想法?

4

2 回答 2

2

我遇到了同样的问题,并通过 Stack Overflow 寻找了几个答案。在这里,我终于找到了答案:

错误:无法加载刚刚安装的包

尝试运行

R CMD javareconf -e

没有 sudo 或任何东西,就像普通用户一样,然后尝试加载库。

让我知道它是否有效。它对我有用。

干杯!

于 2014-02-07T20:50:32.827 回答
0

我敢打赌,您的错误将通过以下尝试消失:

from rpy2.robjects.packages import importr
utils = importr('utils')
utils.install_packages('rJava')

现在您可以在 python 中编译您的 r 代码,但请确保使用上述尝试安装 R 依赖项。希望这对你有用。

于 2020-04-27T15:20:36.000 回答