从源代码编译安装的 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 的 文档指出,有一种简单的选项可以指定 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"
然后一切就可以正常工作了!
pip install rpy2
的原因是什么? - lgautierpip install rpy
,因为它出现了同样的错误,而且我认为从源代码构建可以打开我否则无法使用的编译选项(例如--r-home
)。 - jeffalstott./configure --enable-R-shlib
。我还看到您有libRblas.so
,libRlapacks.so
,但没有libR.so
。可能分享一下您编译R的具体方法会对可能发生的情况提供有帮助的提示... - lgautier