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

Sam*_*amo 7 python r rpy2 conda

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

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

qjg*_*ods 3

不要使用conda install安装 rpy2,只需使用pip install rpy2. 以下是您在 rpy2 之前可能需要安装的一些附加软件包:

\n
conda install -y PyHamcrest\nsudo apt-get install -y libreadline6-dev\npip install rpy2\n
Run Code Online (Sandbox Code Playgroud)\n

一些注意事项:

\n
    \n
  1. which pip应该参考 anaconda 的路径。

    \n
  2. \n
  3. 在安装 .R 文件之前,应正确设置 R 的环境变量(R_HOME 和 PATH)rpy2

    \n
  4. \n
  5. 安装完成后,调用时可能会遇到错误import rpy2.robjects as robjects

    \n

    RRuntimeWarning: 错误: dyn.load(file, DLLpath = DLLpath, ...) 中的 \xe2\x80\x98stats\xe2\x80\x99 的包或命名空间加载失败:\n无法加载共享对象 \'/usr/local /lib/R/library/stats/libs/stats.so\':\nlibRlapack.so: 无法打开共享对象文件: 没有这样的文件或目录

    \n
  6. \n
\n

为了解决这个问题,我在如何解决错误中找到了解决方案 - libRlapack.so: 无法打开共享对象文件: 没有这样的文件或目录

\n

您需要找到您的libRlapack.so文件(在我的例子中,该文件位于/usr/local/lib/R/lib/),或者以下命令应显示该文件的路径:

\n
R CMD ldd /usr/local/lib/R/library/stats/libs/stats.so\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
echo "/usr/local/lib/R/lib/" >> /etc/ld.so.conf.d/libR.conf && ldconfig\n
Run Code Online (Sandbox Code Playgroud)\n

这应该可以解决问题。

\n