无法正确安装 rpy2
Could not install rpy2 correctly
我尝试使用以下命令在我的计算机上使用 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 <module>
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 <module>
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 <module>
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 <module>
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 文件夹中的 Rinternals.h
,其中R_ClassSymbol
已定义
但是在 ~/.bashrc
中我确实设置了以下内容:
导出 C_INCLUDE_PATH="/mnt/work1/software/R/3.1.1/lib64/R/include:${C_INCLUDE_PATH}"
导出 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 工作。
我尝试使用以下命令在我的计算机上使用 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 <module>
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 <module>
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 <module>
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 <module>
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 文件夹中的 Rinternals.h
,其中R_ClassSymbol
已定义
但是在 ~/.bashrc
中我确实设置了以下内容:
导出 C_INCLUDE_PATH="/mnt/work1/software/R/3.1.1/lib64/R/include:${C_INCLUDE_PATH}"
导出 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 工作。