2014-02-17 103 views
3

当我尝试导入rpy2时出现错误。这是代码和错误。rpy2导入不起作用

>>> import pandas.rpy.common 
Traceback (most recent call last): 

File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\IPython\core\interactiveshell.py", line 2828, in run_code 
    exec(code_obj, self.user_global_ns, self.user_ns) 

File "<ipython-input-148-c258a0f70d44>", line 1, in <module> 
import pandas.rpy.common 

File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\pandas\rpy\common.py", line 14, in <module> 
from rpy2.robjects.packages import importr 

ImportError: No module named 'rpy2' 

可能是什么问题?我使用的Python 3.3.3版和熊猫版本0.13.1

编辑

试过单独安装rpy2。

  1. 直接使用python setup.py install给了我一个错误,os没有一个模块popen3

  2. 从Christoph Gohlke的站点http://www.lfd.uci.edu/~gohlke/pythonlibs/直接安装exe(rpy2-2.3.9.win32-py3.3.exe)运行正常。但是,如果我尝试做import pandas.rpy.common as com然后我得到以下错误(与加载DLL问题在​​:

    Traceback (most recent call last): 
        File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\IPython\core\interactiveshell.py", line 2828, in run_code 
    exec(code_obj, self.user_global_ns, self.user_ns) 
    
        File "<ipython-input-10-63ebebefea80>", line 1, in <module> 
    import pandas.rpy.common as com 
    
        File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site- packages\pandas\rpy\common.py", line 14, in <module> 
    
    from rpy2.robjects.packages import importr 
    
        File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\rpy2\robjects\__init__.py", line 15, in <module> 
    
        import rpy2.rinterface as rinterface 
        File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\rpy2\rinterface\__init__.py", line 103, in <module> 
    
        from rpy2.rinterface._rinterface import * 
    ImportError: DLL load failed: %1 is not a valid Win32 application. 
    

编辑

终于解决了这个问题好像加入R_HOME和R_USER环境变量做到了诀窍:

+0

有关版本信息(例如需要R版本3.2),另请参阅http://askubuntu.com/a/681142/6130 – nealmcb

回答

3

RPy2是一个来自Pandas的独立项目(主页here),因此您必须单独安装它。 pip install rpy2,然后重新启动Python并重试。

0

这看起来像一只熊猫接口到rpy2。另外,您还需要在系统上安装rpy2。我没有rpy2,所以很容易让我检查:

$ pip install rpy2 

In [1]: import pandas.rpy.common 

它的工作原理:

In [1]: import pandas.rpy.common 
(...) 
ImportError: No module named rpy2.robjects.packages 


In [2]: import rpy2 
(...) 
ImportError: No module named rpy2 

我使用PIP安装它!它import rpy2适合你,但import pandas.rpy.common确实不是那么问题可能会更微妙。

+0

我也尝试过这种方式。它给了我错误,rpy2需要Python 2.7或类似的东西。之后,我检查了rpy2文档,并在此处提到了这一点:http://rpy.sourceforge.net/rpy2/doc-2.3/html/overview.html#background。我认为更大的问题是我正在使用Python 3.3,而rpy2不适用于Python 3或更高版本。 – uday

+0

@uday Rpy2 2.3.x正在使用Python 3.3。 – lgautier

+0

@Igautier,我手动解压缩rpy2-2.3.1 tar文件,然后执行python setup.py install。安装运行罚款后给我一个错误几个步骤:“AttributeError:'模块'对象没有属性'popen3' – uday

0

在我的情况下,它最初并没有与conda安装它。我通过首先改变活跃的环境来解决这个问题。

source activate [environment Name] 
conda install -c r rpy2=2.8.5 
0

这可能不直接适用于您的问题,但自pandas和rpy2升级后,它们的界面已更改。为了设置它,你现在必须:现在

from rpy2.robjects import r, pandas2ri 

pandas2ri.activate() 

,为了改变大熊猫数据帧到一个R数据框,必须使用pandas2ri.py2ri(),或使用pandas2ri.ri2py()如果你想改变的R数据框变成熊猫数据帧。更多信息请见https://pandas.pydata.org/pandas-docs/stable/r_interface.html

0

我最近遇到类似的问题。我试图使用python的anaconda版本安装rpy2(3.6.3)。 下面,提到命令工作对我来说,

* python3 -m conda install rpy2 
0

在我来说,当我在蟒蛇安装它提示了命令它的工作:

conda install -m rpy2

之后,我不得不搬到rpy2目录从rpy2-2.9.0-py3.6-win32.egg(安装到的文件夹)导致安装后无法识别它...并且仅将rpy2文件夹移动到以下路径:

C:\用户.. \ Anaconda3 \ LIB \站点包 (所有软件包都称呼)

这解决的问题对我来说。