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/