我目前正在致力于一个项目,该项目旨在通过仅运行已实现的功能和算法为香草使用提供应用程序,并且易于扩展,以帮助另一位研究人员“只需在此处插入您的额外代码”建筑。
我使用的是Electron Python后端,它又使用rpy2]>库与R通信。问题是我的Python代码需要加载一个R库,使用rJava,而我发现使语法rpackages.importr('rJava')
起作用的唯一方法是,在运行Python脚本之前,导出一些R / Java变量(我认为使用命令R CMD javareconf -e
可以做到这一点,那么它在Ubuntu上可以正常工作。
我也在Windows上短暂测试了该解决方案,但是它没有用。所以我想知道如果有另一种方法我该如何解决。
在Linux场景中,您认为在R CMD命令之前运行npm start(对于整个Electron应用程序)是否可行?没有更好的解决方案吗?
[我也在考虑使用Docker容器,但是我担心这会使其他研究人员将他们的代码插入App变得更加困难(例如,如果需要外部库)。
不使用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
我目前正在致力于一个项目,该项目旨在通过使用已实现的功能和算法来为香草使用提供应用程序,并且还易于扩展以提供帮助...