【问题标题】:rpy2 import is not workingrpy2导入不起作用
【发布时间】:2014-03-17 07:42:30
【问题描述】:

尝试导入 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 版和 pandas 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,则会收到以下错误(在from rpy2.rinterface._rinterface import * 处加载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 环境变量就可以了。

【问题讨论】:

标签: python pandas rpy2


【解决方案1】:

RPy2 是一个独立于 Pandas 的项目(主页here),因此您必须单独安装它。你应该可以pip install rpy2,然后重启Python再试一次。

【讨论】:

    【解决方案2】:

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

    from rpy2.robjects import r, pandas2ri
    
    pandas2ri.activate()
    

    现在,为了将 Pandas 数据帧更改为 R 数据帧,必须使用 pandas2ri.py2ri(),如果要将 R 数据帧更改为 Pandas 数据帧,请使用 pandas2ri.ri2py()。更多信息请访问https://pandas.pydata.org/pandas-docs/stable/r_interface.html

    【讨论】:

    • 解决了我的问题!我认为这是正确的答案。谢谢!
    【解决方案3】:

    嗯,首先你必须安装 rpy2。如果您使用的是 conda,则可以使用以下命令来完成

    conda install -c r rpy2 
    

    然后,如果你想在 Jupyter Notebook 环境中使用 R,你可以使用激活 R

    %load_ext rpy2.ipython
    

    【讨论】:

      【解决方案4】:

      在我的情况下,当我使用命令在 Anaconda Prompt 中安装它时它起作用了:

      conda install -m rpy2

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

      C:\Users..\Anaconda3\Lib\site-packages (调用所有包的地方)

      这为我解决了问题。

      【讨论】:

        【解决方案5】:

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

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

        我使用 pip 安装了它:

        $ pip install rpy2
        
        In [1]: import pandas.rpy.common
        

        有效! import rpy2 对你有用,但 import pandas.rpy.common 没有那么问题可能更微妙。

        【讨论】:

        • 我也试过这种方式。它给了我一个错误,即 rpy2 需要 Python 2.7 或类似的东西。此后,我检查了 rpy2 文档,它在这里提到了这一点:rpy.sourceforge.net/rpy2/doc-2.3/html/overview.html#background。我认为更大的问题是我使用的是 Python 3.3,而 rpy2 可能不适用于 Python 3 或更高版本。
        • @Igautier,我手动解压缩了 rpy2-2.3.1 tar 文件,然后安装了 python setup.py。运行正常几个步骤后安装给我一个错误:“AttributeError:'module'对象没有属性'popen3'
        【解决方案6】:

        在我的情况下,它最初并没有使用 conda 安装它。我首先通过更改活动环境来解决它。

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

        【讨论】:

          【解决方案7】:

          我最近遇到了类似的问题。我试图使用蟒蛇版本的python(3.6.3)安装rpy2。 下面,提到的命令对我有用,

          * python3 -m conda install rpy2
          

          【讨论】:

            【解决方案8】:

            我使用 conda install -m rpy2 安装

            并将 rpy2 的目录从 rpy2-2.9.1-py3.6-win-amd64.egg 文件夹移动到在导入期间调用包的路径,然后它就可以工作了。

            【讨论】:

              猜你喜欢
              • 2017-07-02
              • 1970-01-01
              • 1970-01-01
              • 2015-12-10
              • 2018-02-25
              • 2015-04-18
              • 2017-10-13
              • 2018-11-16
              • 2019-02-15
              相关资源
              最近更新 更多