有没有办法对通过rpy2导入的R模块进行腌制/序列化? (蟒蛇)

时间:2018-08-27 17:38:05

标签: python r serialization pickle rpy2

我正在开发一个依赖于通过R安装的特定程序的程序包。我宁愿简化安装过程,也不要让用户使用所有程序包为R创建后端。这可能是完全不可避免的,但我想知道是否有任何可能的方法可以通过pickle或Python中的任何序列化模块以序列化形式提供R对象? 我先尝试泡菜,然后尝试莳萝,但没有运气。 >>>进口泡菜 >>>来自rpy2.robjects.packages导入导入器 >>> r_package = importr(“ dynamicTreeCut”) >>> r_package rpy2.robjects.packages.Package作为<模块'dynamicTreeCut'> >>>使用open(“ ../ dynamicTreeCut.rpy2.pkl”,“ wb”)作为f: ... pickle.dump(r_package,f) ... 追溯(最近一次通话):   <模块>中第2行的文件“ ” TypeError:无法腌制InstalledSTPackage对象

1 个答案:

答案 0 :(得分:1)

您需要R才能使用rpy2,如果要使用R软件包,则必须将它们与R一起安装。如何打包R和软件包是一个与rpy2相对独立的问题,并且详细介绍了可能超出Rpy2范围的选项。 SO的答案:docker映像(请参阅rpy2自己的映像with Jupyterlabjupyterlab and spark),用于预编译二进制文件,.deb或.rpm软件包的专用安装程序,等等。