使用rpy.robjects时出现消息“无法确定R主目录:[WinError 2]系统找不到指定的文件”。

3

我正在使用rpy2 API在Python中实现一个简单的函数。

在VScode中,我成功地打印了置信区间,并调用了使用robjects创建的函数来计算Z统计量,如图所示。但是在打印值之前,我收到了消息“无法确定R home:[WinError 2]系统找不到指定的文件”。在Jupyter中出现相同的消息,但当调用rpy2函数时,它不允许我打印任何东西,会出现错误“Conversion'rpy2py'未定义为类型为'<class'rpy2.rinterface.SexpClosure'>'的对象”。

仅导入软件包本身“import rpy2.robjects”也会检索到相同的消息。导入rpy2本身不会显示任何内容。

我尝试将Rscript.exe和R.exe路径添加到系统变量中,但没有起作用(不确定是否正确),尝试重新安装R,但也没有起作用。

有什么线索可以解决这个问题吗?

在VSCode中使用该函数并输出的图像 与之前相同函数在Jupyter中的输出

1个回答

5
错误的原因是Windows R已更改其注册表结构,导致当前rpy2的R安装路径检测过时。我已经推送了一个PR来解决这个问题,但在此期间,您的解决方案是设置R_HOME环境变量。
您可以执行以下操作:
import os
os.environ["R_HOME"] = r"C:\Program Files\R\R-4.2.0" # change as needed
import rpy2

只要在导入任何rpy2模块之前运行os.environ...代码行,就可以正常使用。
另外,您还可以设置os.environ["R_LIBS_USER"]以使用每个用户的库路径。

我也遇到了同样的问题,尝试实现了你提到的方法,但似乎对我仍不起作用。 - kev
很好奇,这是使用Python还是Jupyter?无论如何,请发布一个新的问题,我可以尝试帮助你。 - kesh
如果您正在使用Jupyter,请查看此解决方法,看看是否有所帮助。 - kesh

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