импорт 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 и Pandas версии 0.13.1.

ИЗМЕНИТЬ

Пробовал устанавливать rpy2 отдельно.

  1. Непосредственное использование python setup.py install дало мне ошибку, что os не имеет модуля popen3.

  2. Непосредственная установка исполняемого файла (rpy2-2.3.9.win32-py3.3.exe) с сайта Кристофа Гольке http://www.lfd.uci.edu/~gohlke/pythonlibs/ работает нормально. Но если я попытаюсь сделать import pandas.rpy.common as com, я получу следующую ошибку (проблема с загрузкой DLL в from rpy2.rinterface._rinterface import *:

    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 помогло.


person uday    schedule 17.02.2014    source источник
comment
Информацию о версии (например, необходимость R версии 3.2) см. также на askubuntu.com/a/681142/6130.   -  person nealmcb    schedule 10.02.2017


Ответы (8)


RPy2 — это отдельный проект от Pandas (домашняя страница здесь), поэтому вам придется установить его отдельно . Вы должны быть в состоянии сделать pip install rpy2, затем перезапустите Python и повторите попытку.

person mwaskom    schedule 17.02.2014

Это может не относиться напрямую к вашему вопросу, но с тех пор, как pandas и rpy2 обновились, их интерфейс изменился. Для того, чтобы настроить его, вы должны сейчас:

from rpy2.robjects import r, pandas2ri

pandas2ri.activate()

Теперь, чтобы изменить фрейм данных Pandas на фрейм данных R, нужно использовать pandas2ri.py2ri() или использовать pandas2ri.ri2py(), если вы хотите изменить фрейм данных R на фрейм данных Pandas. Дополнительную информацию можно найти по адресу https://pandas.pydata.org/pandas-docs/stable/r_interface.html.

person Bob McBobson    schedule 11.09.2017
comment
Решил мою проблему! Я думаю, что это правильный ответ атм. Благодарю вас! - person sebhofer; 20.03.2018

Ну, сначала вам нужно установить rpy2. Если вы используете conda, вы можете сделать это с помощью следующей команды

conda install -c r rpy2 

Затем, если вы хотите использовать R в среде Jupyter Notebook, вы можете активировать R, используя

%load_ext rpy2.ipython
person ewalel    schedule 18.05.2018

В моем случае это сработало, когда я установил его в Anaconda Prompt с помощью команды:

conda install -m rpy2

После этого мне пришлось переместить каталог rpy2 из rpy2-2.9.0-py3.6-win32.egg (папка, в которую он был установлен), потому что он не распознал его после установки... и переместил только папку rpy2 по следующему пути:

C:\Users..\Anaconda3\Lib\site-packages (откуда вызываются все пакеты)

Это решило проблему для меня.

person Duca    schedule 02.02.2018

Это похоже на интерфейс pandas для rpy2. Отдельно вам также необходимо установить 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 нет, тогда проблема может быть более тонкой.

person Dan Allan    schedule 17.02.2014
comment
Я тоже так пробовал. Это дало мне ошибку, что rpy2 нужен Python 2.7 или что-то подобное. После этого я проверил документацию rpy2, и здесь это упоминается: rpy .sourceforge.net/rpy2/doc-2.3/html/overview.html#background. Я думаю, что большая проблема заключается в том, что я использую Python 3.3, а rpy2, вероятно, не работает с Python 3 или выше. - person uday; 18.02.2014
comment
@Igautier, я вручную разархивировал tar-файл rpy2-2.3.1, а затем установил python setup.py. Установка выдала мне ошибку после нескольких шагов: AttributeError: объект 'module' не имеет атрибута 'popen3' - person uday; 18.02.2014

В моем случае изначально не получилось установить его с помощью conda. Я решил это, сначала изменив активную среду.

source activate [environment Name]
conda install -c r rpy2=2.8.5
person Benedikt    schedule 11.03.2017

Недавно я столкнулся с похожей проблемой. Я пытался установить rpy2, используя версию Python для anaconda (3.6.3). Ниже указанная команда работала для меня,

* python3 -m conda install rpy2
person Pramit    schedule 01.11.2017

Я установил с помощью conda install -m rpy2

и переместил каталог rpy2 из папки rpy2-2.9.1-py3.6-win-amd64.egg на путь, откуда пакеты вызываются во время импорта, и тогда это сработало.

person AnksG    schedule 31.07.2018