python - Rpy2 在安装时找不到我的 R 库

标签 python r rpy2

R 从源代码构建,本地安装。 R 位于 ~/bin/R(在我的 PATH 中),其库位于 ~/lib64/R/。安装 rpy2 应该很简单。它找到正确的 R 就好了(因为它在路径中)。然后它找不到库。

$python setup.py build install
R version 3.2.1 (2015-06-18) -- "World-Famous Astronaut"

...

setup.py:211: UserWarning: No include specified
  warnings.warn('No include specified')
setup.py:222: UserWarning: No libraries as -l arguments to the compiler.
  warnings.warn('No libraries as -l arguments to the compiler.')

    Compilation parameters for rpy2's C components:
        include_dirs    = []
        library_dirs    = []
        libraries       = []
        extra_link_args = []

然后我们得到一百万个错误,它找不到 R 库中的函数。

Rpy2 的 documentation says有一个简单的选项可以指定 R 或其库的位置:

python setup.py build --r-home ~/lib64/R/lib install

但是如果你这样做,那么你会得到:

setup.py:222: UserWarning: No libraries as -l arguments to the compiler.
  warnings.warn('No libraries as -l arguments to the compiler.')

    Compilation parameters for rpy2's C components:
        include_dirs    = []
        library_dirs    = []
        libraries       = []
        extra_link_args = []

usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: option --r-home not recognized

看起来 --r-home 功能已被删除。一个 rpy2 如何指向正确的库?


编辑:

现在已经安装了 R:

./configure --prefix=${HOME} --enable-R-shlib
make
make install

之后,我可以使用 pip install rpy2 安装 rpy2。但是,我们仍然遇到库问题:

import rpy2.robjects as robjects
ImportError: libRblas.so: cannot open shared object file: No such file or directory

然后我需要将其添加到我的路径中:

export LD_LIBRARY_PATH="~/lib64/R/lib:$LD_LIBRARY_PATH"

然后一切正常!

最佳答案

如果 R 位于非常规位置,最简单的方法可能是通过设置环境变量来提供一些帮助(旧版本的文档正在谈论 --r-home 但这是一个较少测试的角,它被删除了)。

尝试:

export PATH=~/bin/R:${PATH}
export LD_LIBRARY_PATH=~/lib64/R/lib:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=~/lib64/R/lib/pkgconfig/:${PKG_CONFIG_PATH}

关于python - Rpy2 在安装时找不到我的 R 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30921570/

相关文章:

python - 如何在 Jupyter 笔记本中使用 rpy2 绘制(内联)?

python - 动态 SQL WHERE 子句生成

python - 如何使用centos在VPS上上传django应用程序

R根据名称拆分列表

python - 如何创建一个空的 R 向量来添加新项目

python - RPy2 robjects.r.pie 给出奇怪的错误 "' x' 值必须为正”

python - 如何使用 Python 的单元测试正确比较两个 SQLAlchemy Column 对象?

Python os.list_dir 停止一级短

c++ - 更新到macOS Catalina后无法使用C++代码编译R软件包

r - 保存要在另一个系统上渲染的 ggplot2 图