我想使用RPy2从Python的R包中调用函数。我使用conda安装了RPy2,并意识到它在conda内部安装了R的新副本...我不想要那样。我只想拥有一个R,并使用/ usr / lib / R中的默认R。
该怎么做?如何强制conda以及Python和RPy2使用/ usr / lib / R中安装的默认R?
答案 0 :(得分:0)
请勿使用conda instal
安装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,...)中“统计信息”的包或名称空间加载失败: 无法加载共享对象“ /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
那应该可以解决问题。