使用R 3.3.3在RHEL6上安装ryp2时出错

时间:2017-07-16 14:37:44

标签: r rpy2 rhel6

我正在尝试在Red Hat 6上安装rpy2。我已按照此处的说明升级到R 3.3.3:https://oguya.ch/posts/2017-03-18-building-R-on-rhel-6/

当我执行rpy2安装时,它失败并显示以下内容:

$ sudo /usr/local/bin/pip2.7 install rpy2
Collecting rpy2
  Using cached rpy2-2.8.6.tar.gz
Requirement already satisfied (use --upgrade to upgrade): six in /usr/local/lib/python2.7/site-packages (from rpy2)
Requirement already satisfied (use --upgrade to upgrade): singledispatch in /usr/local/lib/python2.7/site-packages (from rpy2)
Installing collected packages: rpy2
  Running setup.py install for rpy2 ... error
    Complete output from command /usr/local/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-eFwk3n/rpy2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-w5v7yg-record/install-record.txt --single-version-externally-managed --compile:
    R version 3.3.3 (2017-03-06) -- "Another Canoe"
    /usr/local/lib64/R/bin/R CMD config --ldflags
    /usr/local/lib64/R/bin/R CMD config --cppflags

        Compilation parameters for rpy2's C components:
            include_dirs    = ['/usr/local/lib64/R/include']
            library_dirs    = ['/usr/local/lib64/R/lib']
            libraries       = ['Rblas', 'gfortran', 'm', 'readline', 'pcre', 'lzma', 'bz2', 'z', 'rt', 'dl', 'm']
            extra_link_args = ['-Wl,--export-dynamic', '-fopenmp', '-Wl,--whole-archive', '/usr/local/lib64/R/lib/libR.a', '-Wl,--no-whole-archive']

    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/rpy2
    copying ./rpy/__init__.py -> build/lib.linux-x86_64-2.7/rpy2
    copying ./rpy/tests_rpy_classic.py -> build/lib.linux-x86_64-2.7/rpy2
    copying ./rpy/rpy_classic.py -> build/lib.linux-x86_64-2.7/rpy2
    copying ./rpy/tests.py -> build/lib.linux-x86_64-2.7/rpy2
    creating build/lib.linux-x86_64-2.7/rpy2/rlike
    copying ./rpy/rlike/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/rlike
    copying ./rpy/rlike/indexing.py -> build/lib.linux-x86_64-2.7/rpy2/rlike
    copying ./rpy/rlike/container.py -> build/lib.linux-x86_64-2.7/rpy2/rlike
    copying ./rpy/rlike/functional.py -> build/lib.linux-x86_64-2.7/rpy2/rlike
    creating build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    copying ./rpy/rlike/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    copying ./rpy/rlike/tests/test_indexing.py -> build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    copying ./rpy/rlike/tests/test_functional.py -> build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    copying ./rpy/rlike/tests/test_container.py -> build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    creating build/lib.linux-x86_64-2.7/rpy2/rinterface
    copying ./rpy/rinterface/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface
    creating build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpSymbol.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpVector.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_Sexp.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpExtPtr.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpVectorNumeric.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpEnvironment.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_EmbeddedR.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpClosure.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_Device.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    creating build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/functions.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/vectors.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/environments.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/language.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/packages_utils.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/packages.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/pandas2ri.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/numpy2ri.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/conversion.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/methods.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/help.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/robject.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/constants.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    creating build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testMethods.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testPandasConversions.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testRObject.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testFunction.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testNumpyConversions.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testArray.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testDataFrame.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testEnvironment.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testVector.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testPackages.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testHelp.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testLanguage.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testRobjects.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testFormula.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    creating build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/tidyr.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/grid.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/grdevices.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/dplyr.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/ggplot2.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    creating build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    copying ./rpy/robjects/lib/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    copying ./rpy/robjects/lib/tests/test_ggplot2.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    copying ./rpy/robjects/lib/tests/test_grdevices.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    copying ./rpy/robjects/lib/tests/test_dplyr.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    creating build/lib.linux-x86_64-2.7/rpy2/interactive
    copying ./rpy/interactive/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/interactive
    copying ./rpy/interactive/packages.py -> build/lib.linux-x86_64-2.7/rpy2/interactive
    copying ./rpy/interactive/process_revents.py -> build/lib.linux-x86_64-2.7/rpy2/interactive
    creating build/lib.linux-x86_64-2.7/rpy2/interactive/tests
    copying ./rpy/interactive/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/interactive/tests
    creating build/lib.linux-x86_64-2.7/rpy2/ipython
    copying ./rpy/ipython/html.py -> build/lib.linux-x86_64-2.7/rpy2/ipython
    copying ./rpy/ipython/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/ipython
    copying ./rpy/ipython/ggplot.py -> build/lib.linux-x86_64-2.7/rpy2/ipython
    copying ./rpy/ipython/rmagic.py -> build/lib.linux-x86_64-2.7/rpy2/ipython
    creating build/lib.linux-x86_64-2.7/rpy2/ipython/tests
    copying ./rpy/ipython/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/ipython/tests
    copying ./rpy/ipython/tests/test_rmagic.py -> build/lib.linux-x86_64-2.7/rpy2/ipython/tests
    running build_clib
    building 'r_utils' library
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/rpy
    creating build/temp.linux-x86_64-2.7/rpy/rinterface
    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I./rpy/rinterface -I/usr/local/lib64/R/include -c ./rpy/rinterface/r_utils.c -o build/temp.linux-x86_64-2.7/./rpy/rinterface/r_utils.o
    In file included from /usr/local/lib64/R/include/Rdefines.h:36,
                     from ./rpy/rinterface/r_utils.c:23:
    /usr/local/lib64/R/include/R_ext/Memory.h:51: warning: function declaration isn’t a prototype
    In file included from /usr/local/lib64/R/include/Rdefines.h:40,
                     from ./rpy/rinterface/r_utils.c:23:
    /usr/local/lib64/R/include/Rinternals.h:886: warning: function declaration isn’t a prototype
    ar rc build/temp.linux-x86_64-2.7/libr_utils.a build/temp.linux-x86_64-2.7/./rpy/rinterface/r_utils.o
    running build_ext
    R version 3.3.3 (2017-03-06) -- "Another Canoe"
    building 'rpy2.rinterface._rinterface' extension
    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DR_INTERFACE_PTRS=1 -DHAVE_POSIX_SIGJMP=1 -DRIF_HAS_RSIGHAND=1 -DCSTACK_DEFNS=1 -DHAS_READLINE=1 -I./rpy/rinterface -I/usr/local/lib64/R/include -I/usr/local/include/python2.7 -c ./rpy/rinterface/_rinterface.c -o build/temp.linux-x86_64-2.7/./rpy/rinterface/_rinterface.o
    In file included from /usr/local/include/python2.7/Python.h:8,
                     from ./rpy/rinterface/_rinterface.c:49:
    /usr/local/include/python2.7/pyconfig.h:1188:1: warning: "_POSIX_C_SOURCE" redefined
    In file included from /usr/include/signal.h:29,
                     from ./rpy/rinterface/_rinterface.c:45:
    /usr/include/features.h:213:1: warning: this is the location of the previous definition
    In file included from /usr/local/lib64/R/include/R.h:80,
                     from ./rpy/rinterface/_rinterface.h:8,
                     from ./rpy/rinterface/_rinterface.c:52:
    /usr/local/lib64/R/include/R_ext/Memory.h:51: warning: function declaration isn’t a prototype
    In file included from ./rpy/rinterface/_rinterface.h:9,
                     from ./rpy/rinterface/_rinterface.c:52:
    /usr/local/lib64/R/include/Rinternals.h:886: warning: function declaration isn’t a prototype
    In file included from ./rpy/rinterface/_rinterface.c:64:
    /usr/local/lib64/R/include/Rinterface.h:149: warning: function declaration isn’t a prototype
    In file included from ./rpy/rinterface/_rinterface.c:73:
    /usr/local/lib64/R/include/R_ext/Rdynload.h:36: warning: function declaration isn’t a prototype
    In file included from ./rpy/rinterface/_rinterface.c:116:
    ./rpy/rinterface/embeddedr.c: In function ‘SexpObject_clear’:
    ./rpy/rinterface/embeddedr.c:48: warning: unused variable ‘res’
    In file included from ./rpy/rinterface/_rinterface.c:119:
    ./rpy/rinterface/sexp.c: In function ‘Sexp_init’:
    ./rpy/rinterface/sexp.c:742: warning: unused variable ‘copy’
    ./rpy/rinterface/_rinterface.c: At top level:
    ./rpy/rinterface/_rinterface.h:203: warning: ‘PyRinterface_IsInitialized’ declared ‘static’ but never defined
    ./rpy/rinterface/_rinterface.h:204: warning: ‘PyRinterface_FindFun’ declared ‘static’ but never defined
    ./rpy/rinterface/_rinterface.h:205: warning: ‘embeddedR_isInitialized’ defined but not used
    ./rpy/rinterface/sequence.c:2173: warning: ‘ComplexVectorSexp_AsSexp’ defined but not used
    ./rpy/rinterface/_rinterface.c: In function ‘EmbeddedR_ShowFiles’:
    ./rpy/rinterface/_rinterface.c:831: warning: ‘gstate’ may be used uninitialized in this function
    ./rpy/rinterface/_rinterface.c: In function ‘EmbeddedR_ResetConsole’:
    ./rpy/rinterface/_rinterface.c:677: warning: ‘gstate’ may be used uninitialized in this function
    ./rpy/rinterface/_rinterface.c: In function ‘EmbeddedR_FlushConsole’:
    ./rpy/rinterface/_rinterface.c:643: warning: ‘gstate’ may be used uninitialized in this function
    ./rpy/rinterface/_rinterface.c: In function ‘EmbeddedR_ChooseFile’:
    ./rpy/rinterface/_rinterface.c:727: warning: ‘gstate’ may be used uninitialized in this function
    ./rpy/rinterface/_rinterface.c: In function ‘EmbeddedR_ReadConsole’:
    ./rpy/rinterface/_rinterface.c:498: warning: ‘gstate’ may be used uninitialized in this function
    ./rpy/rinterface/_rinterface.c: In function ‘EmbeddedR_WriteConsoleEx’:
    ./rpy/rinterface/_rinterface.c:339: warning: ‘consolecallback’ may be used uninitialized in this function
    ./rpy/rinterface/_rinterface.c:354: warning: ‘gstate’ may be used uninitialized in this function
    ./rpy/rinterface/_rinterface.c: In function ‘EmbeddedR_ShowMessage’:
    ./rpy/rinterface/_rinterface.c:429: warning: ‘gstate’ may be used uninitialized in this function
    ./rpy/rinterface/_rinterface.c: In function ‘EmbeddedR_CleanUp’:
    ./rpy/rinterface/_rinterface.c:979: warning: ‘gstate’ may be used uninitialized in this function
    gcc -pthread -shared build/temp.linux-x86_64-2.7/./rpy/rinterface/_rinterface.o -L/usr/local/lib64/R/lib -Lbuild/temp.linux-x86_64-2.7 -Wl,-R/usr/local/lib64/R/lib -lRblas -lgfortran -lm -lreadline -lpcre -llzma -lbz2 -lz -lrt -ldl -lm -lr_utils -o build/lib.linux-x86_64-2.7/rpy2/rinterface/_rinterface.so -Wl,--export-dynamic -fopenmp -Wl,--whole-archive /usr/local/lib64/R/lib/libR.a -Wl,--no-whole-archive
    /usr/bin/ld: /usr/local/lib64/R/lib/libR.a(CommandLineArgs.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
    /usr/local/lib64/R/lib/libR.a(CommandLineArgs.o): could not read symbols: Bad value
    collect2: ld returned 1 exit status
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/usr/local/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-eFwk3n/rpy2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-w5v7yg-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-eFwk3n/rpy2/

任何人都知道问题是什么以及我如何在这里安装rpy2?

还尝试从源代码构建rpy2,但失败了:

gcc -pthread -shared build/temp.linux-x86_64-2.7/./rpy/rinterface/_rinterface.o -L/usr/local/lib64/R/lib -Lbuild/temp.linux-x86_64-2.7 -Wl,-R/usr/local/lib64/R/lib -lRblas -lgfortran -lm -lreadline -lpcre -llzma -lbz2 -lz -lrt -ldl -lm -lr_utils -o build/lib.linux-x86_64-2.7/rpy2/rinterface/_rinterface.so -Wl,--export-dynamic -fopenmp -Wl,--whole-archive /usr/local/lib64/R/lib/libR.a -Wl,--no-whole-archive

/usr/bin/ld: cannot find -lr_utils

我搜索并搜索但没找到一个我可以从中获取libr_utils的地方。

1 个答案:

答案 0 :(得分:-1)

运行pip install rpy2将在此处从源代码构建它。

如文档中所示,坚持pippython setup.py install。构建它时有几个连接的部分,只发出一个gcc命令很可能会导致错过库的错误(如你所见)。

我不确定您看到的错误(可能是从过时的C编译器到R和其他R库的不兼容构建的任何内容)。您在其“企业”版本中使用了相当旧的系统。可能会在公司支持渠道中有更多的答案或知识。