【问题标题】:LoadLibrary failure with rpy2rpy2 的 LoadLibrary 失败
【发布时间】:2018-01-25 10:04:48
【问题描述】:

升级 R 和 rpy2 后,我在导入 R 包统计信息时发现 rpy2 出现 LoadLibrary 失败问题。运行以下代码后:

import rpy2.robjects as robjects
from rpy2.objects.packages import importr
rstats = importr('stats')

我收到错误消息

RRuntimeError: Error in inDL(x, as.logical(local), as.logical(now), ...) : 
  unable to load shared object 'C:/Program Files/R/R-3.4.3/library/stats/libs/x64/stats.dll':
  LoadLibrary failure:  The specified module cannot be found.

其他模块被正确导入,除非它们自己导入统计信息。我试图重新安装 R 和 rpy2 无济于事。 similar issue 报告了 .Renviron 文件中的路径问题。此文件在我的计算机中不存在。

我的 R_HOME 是 C:\Program Files\R\R-3.4.3,我的 R_USER 是 C:\Users\user.name。

您能帮我找出问题所在以及如何解决吗?

【问题讨论】:

  • 您的计算机上是否存在“C:/Program Files/R/R-3.4.3/library/stats/libs/x64/stats.dll”?另外,以下命令:python -c "import sys;print(sys.version)" 输出什么?
  • @CristiFati 是的,我忘了提,stats.dlI 存在于我的计算机中。命令的输出为:2.7.13 |Anaconda custom (64-bit)| (default, Dec 19 2016, 13:29:36) [MSC v.1500 64 bit (AMD64)]
  • 嗯,我没有 R,但你应该检查 .dll 依赖项(dependencywalker.com),看看有没有不见了。
  • @CristiFati 谢谢。 Dependency Walker 找不到 R.dll、Rblas.dll 或 Rlapack.dll。但是,它们都在 C:\Program Files\R\R-3.4.3\bin\x64 中,单独运行 R 时我没有问题。

标签: python r rpy2 loadlibrary


【解决方案1】:

我通过将 C:\Program Files\R\R-3.4.3\bin\x64 添加到路径来解决问题。我认为这个地址是在我卸载之前的 R 版本时从路径中删除的。并且需要手动安装地址到安装新版本后的路径,按照R for Windows FAQ

【讨论】:

  • 谢谢,这对我有用...我使用的是 32 位版本,位于:C:\Program Files\R\R-3.4.3\bin\i386。
  • 我还是不能解决问题,因为我用的是Mac。
【解决方案2】:

对于那些使用 anaconda 的人,我使用 conda install rpy2 解决了这个问题

还将条目 C:\Program Files\R\R-4.0.2\bin\x64 添加到我的用户 Path 变量中。
并添加了变量R_HOME,其值为C:\Program Files\R\R-4.0.2
并添加变量R_USER,其值为C:\ProgramData\Anaconda3\Lib\site-packages\rpy2

我尝试了许多不同的建议,但这是唯一的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2020-07-12
    • 2016-01-28
    相关资源
    最近更新 更多