我正在尝试在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的地方。
答案 0 :(得分:-1)
运行pip install rpy2
将在此处从源代码构建它。
如文档中所示,坚持pip
或python setup.py install
。构建它时有几个连接的部分,只发出一个gcc命令很可能会导致错过库的错误(如你所见)。
我不确定您看到的错误(可能是从过时的C编译器到R和其他R库的不兼容构建的任何内容)。您在其“企业”版本中使用了相当旧的系统。可能会在公司支持渠道中有更多的答案或知识。