IPython笔记本和rmagic / rpy2:找不到模块ri2py(OSX 10.8.5,python 2.7,R 3.1)

时间:2014-05-28 12:56:05

标签: r macos ipython rpy2

我试图通过Enthought Canopy使用Python 2.7.6来使用IPython笔记本的rmagic扩展。

当我尝试以下示例时:

import numpy as np  
import pylab  
X = np.array([0,1,2,3,4])  
Y = np.array([3,5,4,6,7])  
pylab.scatter(X, Y)

%Rpush X Y  
%R lm(Y~X)$coef  

我收到错误:

AttributeError                            Traceback (most recent call last)  
<ipython-input-7-96dff2c70ba0> in <module>()
      1 get_ipython().magic(u'Rpush X Y')
----> 2 get_ipython().magic(u'R lm(Y~X)$coef')
…  

/Users/hrob/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/extensions/rmagic.pyc in eval(self, line)  
    212             res = ro.r("withVisible({%s})" % line)  
    213             value = res[0] #value (R object)  
--> 214             visible = ro.conversion.ri2py(res[1])[0] #visible (boolean)  
    215         except (ri.RRuntimeError, ValueError) as exception:  
    216             warning_or_other_msg = self.flush() # otherwise next return seems to have copy of error  

AttributeError: 'module' object has no attribute 'ri2py'  

我找不到其他人遇到同样问题并且不了解自己解决问题的人。虽然convert.py中没有ri2py的定义 我最初安装了Anaconda,并通过它运行python笔记本,结果完全相同。

rpy2(版本2.4.0)安装成功,但是当我测试它时,我得到1个预期的失败,如下所示:

python -m 'rpy2.robjects.tests.__init__'  
…  
testNewWithTranslation (testFunction.SignatureTranslatedFunctionTestCase) ... expected failure

我不知道这是否相关。

任何人都可以建议问题可能是什么以及我如何解决它?我使用兼容的python,R等版本是否需要重新安装/更新?

1 个答案:

答案 0 :(得分:23)

您使用的是%load_ext rmagic吗?

如果是,请尝试改为使用%load_ext rpy2.ipython

这是版本2.4.0中的new features之一。