我想使用 RPy2 在 Python 中调用我的 R 包中的函数。我使用 conda 安装了 RPy2 并意识到它在 conda 中安装了 R 的新副本......我不想要那个。我只想拥有并使用一个 R,默认在/usr/lib/R 中。
该怎么做?如何强制 conda 和 Python 和 RPy2 使用安装在/usr/lib/R 中的默认 R?
最佳答案
不要使用conda install
安装rpy2,只需使用pip install rpy2
。以下是您可能需要在 rpy2 之前安装的一些额外软件包:
conda install -y PyHamcrest
sudo apt-get install -y libreadline6-dev
pip install rpy2
一些注意事项:
which pip
应该引用 anaconda 的路径。在安装
rpy2
之前,应正确设置 R 的环境变量(R_HOME 和 PATH)。安装后调用
import rpy2.robjects as robjects
时可能会遇到错误:RRuntimeWarning:错误:dyn.load(文件,DLLpath = DLLpath,...)中“stats”的包或命名空间加载失败: 无法加载共享对象“/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
这应该可以解决问题。
关于python - 安装并使用 RPy2(使用 conda),以便它使用/usr/lib/R R 中的默认 R 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51486081/