rpy2是python中的R语言接口模块,今天捣鼓了一个下午,终于把rpy2搞定,记录一下安装过程中需要注意的问题:
1. R编译的过程中,必须选择--enable-R-shlib 选项,将R编译成lib模式,在此模式下,会生成path-to-R/lib/libR.so库;
同时,确保同目录下libRblas.so、libRlapack.so两个链接库也被正确生成,这两个库默认会生成,如果没有,需要添加参数:--enable-BLAS-shlib --with-blas --with-lapack
如果不编译生成libR.so,rpy2就无法正确编译
2. R安装完成之后,如果安装到个人路径下,需要添加四个环境变量到配置文件中:
export R_HOME=path-to-R
export R_LIBS=$R_HOME/lib64/R/library
export LD_LIBRARY_PATH=$R_HOME/lib:$LD_LIBRARY_PATH
export PATH=$R_HOME/bin:$PATH
其中比较容易漏掉的是PATH和LD_LIBRARY_PATH,如果是用root安装,可能会没有问题,如果安装到个人目录下,不添加这两个变量的话,就无法正确寻找需要的动态链接库;
R_LIBS的作用是rpy2中调用安装的R包时,根据该变量寻找对应的包;
3. python编译安装之前,必须要先安装sqlite-devel,否则会报找不到_sqlite模块的错误信息,
如果是已经安装好的python,则需要安装sqlite-devel库之后,重新安装python;
确保以上三点没有问题之后,rpy2安装就比较简单了,直接使用
pip install rpy2
即可
检查rpy2是否正确安装:
>>> import rpy2.robjects as rb
>>> rb.r("library('ade4')")
<StrVector - Python:0x7fccfd2a2248 / R:0x2e44108>
[str, str, str, ..., str, str, str]
确保没有警告信息以及错误信息,rpy2就成功安装,并且可以正确调用已安装的R包了