无法正确安装rpy2

我尝试使用以下命令在R 3.1.1的计算机上安装rpy2:

pip install rpy2 --user 

它输出成功,但是当我尝试使用它进行测试时

 python -m rpy2.tests 

它给我以下错误

  File "/mnt/work1/software/python/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/mnt/work1/software/python/2.7/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/mnt/work1/users/home2/stamaki/.local/lib/python2.7/site-packages/rpy2-2.6.0-py2.7-linux-x86_64.egg/rpy2/tests.py", line 23, in  import rpy2.tests_rpy_classic File "/mnt/work1/users/home2/stamaki/.local/lib/python2.7/site-packages/rpy2-2.6.0-py2.7-linux-x86_64.egg/rpy2/tests_rpy_classic.py", line 3, in  import rpy2.rpy_classic as rpy File "/mnt/work1/users/home2/stamaki/.local/lib/python2.7/site-packages/rpy2-2.6.0-py2.7-linux-x86_64.egg/rpy2/rpy_classic.py", line 5, in  import rpy2.rinterface as ri File "/mnt/work1/users/home2/stamaki/.local/lib/python2.7/site-packages/rpy2-2.6.0-py2.7-linux-x86_64.egg/rpy2/rinterface/__init__.py", line 100, in  from rpy2.rinterface._rinterface import * ImportError: /mnt/work1/users/home2/stamaki/.local/lib/python2.7/site-packages/rpy2-2.6.0-py2.7-linux-x86_64.egg/rpy2/rinterface/_rinterface.so: undefined symbol: R_ClassSymbol 

它似乎是在环境变量中没有设置R的C包含路径的情况,因为sexp.c的编译不包括R文件夹中的R_ClassSymbol ,其中定义了R_ClassSymbol

但是在~/.bashrc我设置了以下内容:export C_INCLUDE_PATH =“/ mnt / work1 / software / R / 3.1.1 / lib64 / R / include:$ {C_INCLUDE_PATH}”export LD_LIBRARY_PATH =“/ mnt / work1 / software /R/3.1.1/lib64/R/lib:${LD_LIBRARY_PATH}”

所以我认为这个错误不应该发生。 任何想法为什么会发生?

完整安装日志:

 Downloading/unpacking rpy2 Running setup.py (path:/tmp/pip_build_stamaki/rpy2/setup.py) egg_info for package rpy2 R was not built as a library R was not built as a library /tmp/pip_build_stamaki/rpy2/setup.py:211: UserWarning: No include specified warnings.warn('No include specified') /tmp/pip_build_stamaki/rpy2/setup.py:222: UserWarning: No libraries as -l arguments to the compiler. warnings.warn('No libraries as -l arguments to the compiler.') R version 3.1.1 (2014-07-10) -- "Sock it to Me" /mnt/work1/software/R/3.1.1/lib64/R/bin/R CMD config --ldflags /mnt/work1/software/R/3.1.1/lib64/R/bin/R CMD config --cppflags Compilation parameters for rpy2's C components: include_dirs = [] library_dirs = [] libraries = [] extra_link_args = [] R version 3.1.1 (2014-07-10) -- "Sock it to Me" warning: no files found matching 'README' anywhere in distribution warning: no previously-included files matching '*patch*' found anywhere in distribution warning: no previously-included files matching '*diff*' found anywhere in distribution warning: no previously-included files matching '.hg' found anywhere in distribution warning: no files found matching 'MANIFEST' warning: no files found matching 'README' warning: no files found matching 'MPL_LICENSE' warning: no files found matching 'GPL_LICENSE' warning: no files found matching 'LGPL_LICENSE' no previously-included directories found matching 'dist' warning: no files found matching 'doc/source/rpy2_logo.png' Requirement already satisfied (use --upgrade to upgrade): six in /mnt/work1/software/python/2.7/lib/python2.7/site-packages (from rpy2) Requirement already satisfied (use --upgrade to upgrade): singledispatch in /mnt/work1/users/home2/stamaki/.local/lib/python2.7/site-packages/singledispatch-3.4.0.3-py2.7.egg (from rpy2) Installing collected packages: rpy2 Running setup.py install for rpy2 R was not built as a library R was not built as a library /tmp/pip_build_stamaki/rpy2/setup.py:211: UserWarning: No include specified warnings.warn('No include specified') /tmp/pip_build_stamaki/rpy2/setup.py:222: UserWarning: No libraries as -l arguments to the compiler. warnings.warn('No libraries as -l arguments to the compiler.') R version 3.1.1 (2014-07-10) -- "Sock it to Me" /mnt/work1/software/R/3.1.1/lib64/R/bin/R CMD config --ldflags /mnt/work1/software/R/3.1.1/lib64/R/bin/R CMD config --cppflags Compilation parameters for rpy2's C components: include_dirs = [] library_dirs = [] libraries = [] extra_link_args = [] R version 3.1.1 (2014-07-10) -- "Sock it to Me" building 'rpy2.rinterface._rinterface' extension gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/mnt/work1/software/python/2.7/include/python2.7 -I/mnt/work1/software/python/2.7/include/ -fPIC -DR_INTERFACE_PTRS=1 -DHAVE_POSIX_SIGJMP=1 -DRIF_HAS_RSIGHAND=1 -DCSTACK_DEFNS=1 -DHAS_READLINE=1 -I./rpy/rinterface -I/mnt/work1/software/python/2.7/include/python2.7 -c ./rpy/rinterface/_rinterface.c -o build/temp.linux-x86_64-2.7/./rpy/rinterface/_rinterface.o In file included from /mnt/work1/software/python/2.7/include/python2.7/Python.h:8, from ./rpy/rinterface/_rinterface.c:55: /mnt/work1/software/python/2.7/include/python2.7/pyconfig.h:1161:1: warning: "_POSIX_C_SOURCE" redefined In file included from /usr/include/signal.h:29, from ./rpy/rinterface/_rinterface.c:51: /usr/include/features.h:213:1: warning: this is the location of the previous definition In file included from ./rpy/rinterface/_rinterface.c:122: ./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:125: ./rpy/rinterface/sexp.c: In function 'Sexp_init': ./rpy/rinterface/sexp.c:738: warning: unused variable 'copy' ./rpy/rinterface/_rinterface.c: At top level: ./rpy/rinterface/sequence.c:2174: warning: 'ComplexVectorSexp_AsSexp' defined but not used ./rpy/rinterface/_rinterface.c: In function 'EmbeddedR_ShowFiles': ./rpy/rinterface/_rinterface.c:874: warning: 'gstate' may be used uninitialized in this function ./rpy/rinterface/_rinterface.c: In function 'EmbeddedR_ResetConsole': ./rpy/rinterface/_rinterface.c:720: warning: 'gstate' may be used uninitialized in this function ./rpy/rinterface/_rinterface.c: In function 'EmbeddedR_FlushConsole': ./rpy/rinterface/_rinterface.c:686: warning: 'gstate' may be used uninitialized in this function ./rpy/rinterface/_rinterface.c: In function 'EmbeddedR_ChooseFile': ./rpy/rinterface/_rinterface.c:770: warning: 'gstate' may be used uninitialized in this function ./rpy/rinterface/_rinterface.c: In function 'EmbeddedR_ReadConsole': ./rpy/rinterface/_rinterface.c:541: warning: 'gstate' may be used uninitialized in this function ./rpy/rinterface/_rinterface.c: In function 'EmbeddedR_WriteConsoleEx': ./rpy/rinterface/_rinterface.c:382: warning: 'consolecallback' may be used uninitialized in this function ./rpy/rinterface/_rinterface.c:397: warning: 'gstate' may be used uninitialized in this function ./rpy/rinterface/_rinterface.c: In function 'EmbeddedR_ShowMessage': ./rpy/rinterface/_rinterface.c:472: warning: 'gstate' may be used uninitialized in this function ./rpy/rinterface/_rinterface.c: In function 'EmbeddedR_CleanUp': ./rpy/rinterface/_rinterface.c:1022: warning: 'gstate' may be used uninitialized in this function gcc -pthread -shared -L/mnt/work1/software/python/2.7/lib/ -I/mnt/work1/software/python/2.7/include/python2.7 -I/mnt/work1/software/python/2.7/include/ build/temp.linux-x86_64-2.7/./rpy/rinterface/_rinterface.o -o build/lib.linux-x86_64-2.7/rpy2/rinterface/_rinterface.so building 'rpy2.rinterface._rpy_device' extension gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/mnt/work1/software/python/2.7/include/python2.7 -I/mnt/work1/software/python/2.7/include/ -fPIC -DR_INTERFACE_PTRS=1 -DHAVE_POSIX_SIGJMP=1 -DRIF_HAS_RSIGHAND=1 -DCSTACK_DEFNS=1 -DHAS_READLINE=1 -Irpy/rinterface -I/mnt/work1/software/python/2.7/include/python2.7 -c ./rpy/rinterface/_rpy_device.c -o build/temp.linux-x86_64-2.7/./rpy/rinterface/_rpy_device.o ./rpy/rinterface/_rpy_device.c:935: warning: 'GrDev_clear' defined but not used gcc -pthread -shared -L/mnt/work1/software/python/2.7/lib/ -I/mnt/work1/software/python/2.7/include/python2.7 -I/mnt/work1/software/python/2.7/include/ build/temp.linux-x86_64-2.7/./rpy/rinterface/_rpy_device.o -o build/lib.linux-x86_64-2.7/rpy2/rinterface/_rpy_device.so warning: no files found matching 'README' anywhere in distribution warning: no previously-included files matching '*patch*' found anywhere in distribution warning: no previously-included files matching '*diff*' found anywhere in distribution warning: no previously-included files matching '.hg' found anywhere in distribution warning: no files found matching 'MANIFEST' warning: no files found matching 'README' warning: no files found matching 'MPL_LICENSE' warning: no files found matching 'GPL_LICENSE' warning: no files found matching 'LGPL_LICENSE' no previously-included directories found matching 'dist' warning: no files found matching 'doc/source/rpy2_logo.png' Successfully installed rpy2 Cleaning up... 

此外,请不要推荐我,无论如何需要sudo,如重新安装R,有时需要他人推荐。 我没有系统的行政优势。

在日志顶部附近,您将看到:R未构建为库。

必须将R编译为共享库才能使rpy2正常工作。