代码之家  ›  专栏  ›  技术社区  ›  O.rka

有没有可能的方法来pickle/序列化通过rpy2导入的R模块?(蟒蛇)

  •  0
  • O.rka  · 技术社区  · 6 年前

    R . 我宁愿简化安装过程,而不是让用户为其创建后端 所有的包裹。这可能是完全不可避免的,但我想知道是否有任何可能的方式,以序列化形式提供R对象通过 pickle 或者Python中的任何序列化模块?

    泡菜 dill 但是没有运气。

    >>> import pickle
    >>> from rpy2.robjects.packages import importr
    >>> r_package = importr("dynamicTreeCut")
    >>> r_package
    rpy2.robjects.packages.Package as a <module 'dynamicTreeCut'>
    >>> with open("./dynamicTreeCut.rpy2.pkl", "wb") as f:
    ...     pickle.dump(r_package, f)
    ...
    Traceback (most recent call last):
      File "<stdin>", line 2, in <module>
    TypeError: can't pickle InstalledSTPackage objects
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   lgautier    6 年前

    您需要R来使用rpy2,如果您希望使用R包,它们必须与R一起安装。如何打包R和包是一个相对独立于rpy2的问题,详细说明这些选项可能超出了SO答案的范围:docker image(请参阅rpy2自己的图片) with Jupyterlab jupyterlab and spark ),用于预编译二进制文件、.deb或.rpm包等的专用安装程序。。。