安装并使用RPy2(使用conda),以便它在/ usr / lib / R R中使用默认的R安装。

时间:2018-07-23 19:35:22

标签: python r conda rpy2

我想使用RPy2从Python的R包中调用函数。我使用conda安装了RPy2,并意识到它在conda内部安装了R的新副本...我不想要那样。我只想拥有一个R,并使用/ usr / lib / R中的默认R。

该怎么做?如何强制conda以及Python和RPy2使用/ usr / lib / R中安装的默认R?

1 个答案:

答案 0 :(得分:0)

请勿使用conda instal安装rpy2,而应使用pip install rpy2。这是您可能需要在rpy2之前安装的一些其他软件包:

conda install -y PyHamcrest
sudo apt-get install -y libreadline6-dev
pip install rpy2

一些注意事项:

  1. which pip应该引用anaconda的路径
  2. 在安装rpy2之前,应正确设置R的环境变量(R_HOME和PATH)
  3. 安装后,调用import rpy2.robjects as robjects时可能会遇到错误:

    RRuntimeWarning:错误:dyn.load(文件,DLLpath = DLLpath,...)中“统计信息”的包或名称空间加载失败:  无法加载共享对象“ /usr/local/lib/R/library/stats/libs/stats.so”:   libRlapack.so:无法打开共享库文件:没有这样的文件或目录

为解决此问题,我在How I solved the error - libRlapack.so: cannot open shared object file: No such file or directory

中找到了解决方案

您需要找到您的libRlapack.so文件(在我的情况下,该文件位于/usr/local/lib/R/lib/中),否则以下命令应显示此文件的路径:

R CMD ldd /usr/local/lib/R/library/stats/libs/stats.so

,然后将此路径写入/etc/ld.so.conf.d/libR.conf,然后运行ldconfig

echo "/usr/local/lib/R/lib/" >> /etc/ld.so.conf.d/libR.conf && ldconfig

那应该可以解决问题。