我正在尝试使用Python通过rpy2调用R.我正在研究Ubuntu 15.10。我已经安装了Python 3.5.1作为Anaconda 2.4.1(64位),R和rpy2版本2.7.6的一部分。当我尝试$ python -m' rpy2.tests'在终端上,我收到以下错误:
Traceback (most recent call last):
File "/home/thirsty/anaconda3/lib/python3.5/runpy.py", line 170, in _run_module_as_main
"__main__", mod_spec)
File "/home/thirsty/anaconda3/lib/python3.5/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/thirsty/anaconda3/lib/python3.5/site-packages/rpy2/tests.py", line 23, in <module>
import rpy2.tests_rpy_classic
File "/home/thirsty/anaconda3/lib/python3.5/site-packages/rpy2/tests_rpy_classic.py", line 3, in <module>
import rpy2.rpy_classic as rpy
File "/home/thirsty/anaconda3/lib/python3.5/site-packages/rpy2/rpy_classic.py", line 5, in <module>
import rpy2.rinterface as ri
File "/home/thirsty/anaconda3/lib/python3.5/site-packages/rpy2/rinterface/__init__.py", line 99, in <module>
from rpy2.rinterface._rinterface import *
ImportError: /home/thirsty/anaconda3/bin/../lib/libreadline.so.6: undefined symbol: PC
答案 0 :(得分:0)
我已经解决了这个问题。 python,rpy2的版本都很好。可能是命令$ python -m&#39; rpy2.tests&#39;可能不是测试rpy2的正确方法。启动python shell后,当我输入rpy2.robjects作为robjects时,它没有任何错误,我能够使用R读取文件。
答案 1 :(得分:0)
我的服务器不是Ubuntu,而是CentOS版本6.6(最终版)。我用这种方式解决了这个问题,我想你可以在Ubuntu中找到相应的文件。
cp /lib64/libreadline.so.6 ~/anaconda3/lib/libreadline.so.6
完成。祝你好运。
但顺便说一句,如果你不能安装rpy2并且系统告诉你需要安装Cython,那么
pip uninstall Cython
pip install Cython
再次祝你好运
同样,不要同时在服务器中安装Anaconda2和Anaconda3,只需使用其中任何一个然后更改环境即可。