Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python R CMD javareconf-e有更好的解决方案吗?_Python_R_Rpy2_Rjava - Fatal编程技术网

Python R CMD javareconf-e有更好的解决方案吗?

Python R CMD javareconf-e有更好的解决方案吗?,python,r,rpy2,rjava,Python,R,Rpy2,Rjava,我目前正在从事一个项目,该项目旨在提供一个应用程序供普通人使用——只运行已实现的功能和算法——并且易于扩展,以便帮助其他研究人员使用“只需在此处插入额外代码”的体系结构 我使用的是Electron Python后端,它还使用rpy2库与R进行通信。 问题是,我的Python代码需要加载的一个R库使用了rJava,而我发现使语法rpackages.importr('rJava')工作的唯一方法是,在运行Python脚本之前,使用命令R CMD javareconf-e,导出一些R/Java变量(我

我目前正在从事一个项目,该项目旨在提供一个应用程序供普通人使用——只运行已实现的功能和算法——并且易于扩展,以便帮助其他研究人员使用“只需在此处插入额外代码”的体系结构

我使用的是Electron Python后端,它还使用rpy2库与R进行通信。 问题是,我的Python代码需要加载的一个R库使用了rJava,而我发现使语法
rpackages.importr('rJava')
工作的唯一方法是,在运行Python脚本之前,使用命令
R CMD javareconf-e
,导出一些R/Java变量(我认为它会这样做),然后它在Ubuntu上运行良好

我也在Windows上简要测试了这个解决方案,但它不起作用。所以我想知道,如果有其他方法,我该如何解决这个问题

在Linux场景中,您认为在R CMD命令之前运行npm start(对于整个Electron应用程序)是否可行?难道没有更好的解决办法吗

我也在考虑使用Docker容器,但我担心这会使其他研究人员更难将代码插入应用程序(例如,如果需要外部库)

未使用
R CMD javareconf-e
的错误如下:

...............
  File "/usr/local/lib/python3.7/dist-packages/rpy2/robjects/packages.py", line 483, in importr
    env = _get_namespace(name)
  File "/usr/local/lib/python3.7/dist-packages/rpy2/rinterface_lib/conversion.py", line 40, in _
    cdata = function(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/rpy2/rinterface.py", line 791, in __call__
    raise embedded.RRuntimeError(_rinterface._geterrmessage())
rpy2.rinterface_lib.embedded.RRuntimeError: Error: .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/home/thispc/R/x86_64-pc-linux-gnu-library/3.6/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory

我已经试过了
~$sudo R CMD javareconf

R似乎安装在一个非常规的位置。可能链接器找不到它。按照以下命令输出中的建议设置环境变量是否有帮助

python -m rpy2.situation LD_LIBRARY_PATH

R似乎安装在一个非传统的位置。可能链接器找不到它。按照以下命令输出中的建议设置环境变量是否有帮助

python -m rpy2.situation LD_LIBRARY_PATH

lang js R CMD javareconf-e
不能在Windows上使用。解决方案还克服了错误消息@Collombelli提到:

rpy2.robjects.packages.LibraryError:包“rJava”中的symbol.env与Python对象属性冲突
代码如下:

rJava=importr('rJava',robject\u translations={.env':'uu\u env'})

M Sellwood的信用卡不能在Windows上使用。解决方案还克服了错误消息@Collombelli提到:

rpy2.robjects.packages.LibraryError:包“rJava”中的symbol.env与Python对象属性冲突
代码如下:

rJava=importr('rJava',robject\u translations={.env':'uu\u env'})

使用命令
~$python3-mrpy2.situation LD_LIBRARY_PATH
可以得到以下输出:
/usr/lib/R/lib:/usr/lib/x86\u 64-linux-gnu:/usr/lib/jvm/default java/lib/server
,但它没有解决问题。我认为这与R/Java有关,因为其他软件包加载得很好。您是否运行了
export LD_LIBRARY\u PATH=/usr/lib/R/lib:/usr/lib/x86\u 64-linux-gnu:/usr/lib/jvm/default Java/lib/server
来设置Python+rpy2将运行的环境?(在启动python之前,在同一个shell中运行
export…
)。好的,我运行了
~$export LD_LIBRARY\u PATH=/usr/lib/R/lib:/usr/lib/x86\u 64-linux-gnu:/usr/lib/jvm/default java/lib/server
然后启动了一个python3 shell并尝试导入rJava:
>导入rpy2.robjects.packages作为rpackages
>rpackages.importr('rJava')
结果:(一些回溯错误和…)`raise LibraryError('symbol'+rname+rpy2.robjects.packages.LibraryError:package“rJava”中的symbol.env'与Python对象属性“使用命令
~$python3-m rpy2”冲突。情况LD_LIBRARY\u PATH
给出以下输出:
/usr/lib/R/lib:/usr/lib/x86\u 64-linux-gnu:/usr/lib/jvm/default java/lib/server
,但它没有解决问题。我认为这是R/java的问题,因为其他包加载得很好。是吗您可以运行
export-LD\u-LIBRARY\u-PATH=/usr/lib/R/lib:/usr/lib/x86\u 64-linux-gnu:/usr/lib/jvm/default-java/lib/server
来设置Python+rpy2将在其中运行的环境(在启动Python之前,在同一个shell中运行
export…
)哦,对不起。好的,我运行了
~$export LD_LIBRARY\u PATH=/usr/lib/R/lib:/usr/lib/x86\u 64-linux-gnu:/usr/lib/jvm/default java/lib/server
然后启动了一个python3 shell并尝试导入rJava:
>>将rpy2.robjects.packages导入为rpackages
>rpackages.importr('rJava')
结果:(一些回溯错误和…)`raise LibraryError('symbol'+rname+rpy2.robjects.packages.LibraryError:包“rJava”中的symbol.env与Python对象属性冲突`