【问题标题】:RPY2 3.3.5 Errors on importRPY2 3.3.5 导入错误
【发布时间】:2020-12-21 18:33:31
【问题描述】:

我正在使用 PyCharm 并运行以下代码:

import numpy as np
import pandas as pd
import rpy2.robjects.packages as packages

print("TEST")

我收到以下错误:

R[write to console]: Error: cons memory exhausted (limit reached?)

R[write to console]: Error: no more error handlers available (recursive errors?); invoking 'abort' restart


Process finished with exit code -1073741784 (0xC0000028)

我使用的是 Windows 10,有 16GB 内存可用。

【问题讨论】:

  • 您可能没有得到任何答案,因为您没有提供环境的详细信息(R 版本、rpy2 版本、Python 版本等)。在您的示例中,您导入 pandas 和 numpy - 如果您不这样做,也会发生错误吗?
  • 一般来说,rpy2 通常在一台 unix 机器上效果更好;如果我要在 Windows 上使用它,我会考虑尝试使用 Windows Subsystem for Linux,但如果您只是希望从 IDE 中使用它,它可能不是解决方案。

标签: python pycharm rpy2


【解决方案1】:

尝试删除 RStudio 在您的目录中生成的所有文件。

【讨论】:

【解决方案2】:

我遇到了同样的问题,经过广泛的研究和大量的反复试验,我有两个解决方案:

  1. 如果你可以使用 Jupyter notebook(即使在 Pycharm 中),导入 rpy2 模块时不会出现 cons memory exhausted 错误。

  2. 如果您在运行导入 rpy2 模块的代码时需要在 Pycharm 中使用 Python 控制台并希望避免此错误,我使用了一种解决方法。 我注意到这个错误可能是由于在同一个项目中为 R 设置了一个活动的renv 环境。当 R 在同一个项目中设置与 Python 以及 renv 依赖管理时,根文件夹中有一个 .Rprofile 文件来激活 renv 以用于新的 R 会话。如果在导入 rpy2 模块时代码未执行(例如注释掉),则不会出现内存耗尽错误。导入 rpy2 模块后,renv 可以再次激活,所有 rpy2 代码将正常执行。此外,可以将 rpy2 定向到 renv 环境以使用来自 R 项目依赖项的包。为了总结解决方法的步骤,我编写了一个函数: 1. 打开 .Rprofile 并清除所有代码 2. 使用 Python 的 importlib 我导入必要的 rpy2 模块 3. 将 R_LIBS_USER 环境变量设置为 renv 的路径库路径 4. 从 .Rprofile 文件中删除注释。 稍后我会把这段代码放到我的 Github 上。

【讨论】:

    猜你喜欢
    • 2016-08-11
    • 2014-09-24
    • 2014-06-01
    • 2017-03-15
    • 2018-01-27
    • 1970-01-01
    • 2017-01-13
    • 2015-01-12
    • 2013-07-08
    相关资源
    最近更新 更多