2016-05-09 39 views
2

在安装rpy2软件包时使用以下命令:python setup.py build install,安装过程会引发以下错误。rpy2找不到inlcude目录

我配置了两个环境变量,指向缺少的文件。

export R_HOME=/data/myprojects/R/R-devel 
export R_INCLUDE_DIR=/data/myprojects/R/R-devel/include 

python setup.py build install 
setup.py:29: UserWarning: R emitting a warning: WARNING: ignoring environment value of R_HOME 
    warnings.warn("R emitting a warning: %s" % r_home[0]) 
setup.py:130: UserWarning: R emitting a warning: WARNING: ignoring environment value of R_HOME 
    warnings.warn("R emitting a warning: %s" % rversion) 
R version 3.3.0 Patched (2016-05-05 r70590) -- "Supposedly Educational" 
/data/myprojects/R/R-patched/bin/R CMD config --ldflags 
R was not built as a library 
setup.py:155: UserWarning: R emitting a warning: WARNING: ignoring environment value of R_HOME 
    warnings.warn("R emitting a warning: %s" % output[0]) 
/data/myprojects/R/R-patched/bin/R CMD config --cppflags 
R was not built as a library 
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 = [] 

running build 
running build_py 
running build_clib 
building 'r_utils' library 
gcc -pthread -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -fstack-protector -O2 -Wall -D_FORTIFY_SOURCE=2 -funwind-tables -fasynchronous-unwind-tables -g -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -fstack-protector -O2 -Wall -D_FORTIFY_SOURCE=2 -funwind-tables -fasynchronous-unwind-tables -g -DOPENSSL_LOAD_CONF -fPIC -I./rpy/rinterface -c ./rpy/rinterface/r_utils.c -o build/temp.linux-s390x-2.7/./rpy/rinterface/r_utils.o 
./rpy/rinterface/r_utils.c:31:22: fatal error: Rdefines.h: No such file or directory 
#include <Rdefines.h> 
        ^
compilation terminated. 
error: command 'gcc' failed with exit status 1 

问题:如何修复setup.py进程的配置以查找包含头文件。

回答

0

我做了这样的工作:

cd rpy2-2.8.2 
ln -s /usr/local/lib/R/include/* rpy/rinterface/ 

替代,当然你rpy2版本。您可以使用“R RHOME”命令找到包含的位置。所以更一般的是:

ln -s RHOME/include/* rpy2-X.X.X/rpy/rinterface/ 

在哪里填写RHOME路径和rpy2版本号。