Я не использовал RPy2 в течение ряда лет (а потом я только немного поиграл). Однако теперь я хочу более серьезно использовать Python и R и решил пересмотреть библиотеку RPy2.
Я использую Mac под управлением El Capitan. Я создал новую виртуальную среду (называемую env34), используя Python 3.4.4, и установил последнюю версию pip (19.1.1), используя get-pip.py. Затем я вставляю в активированную среду numpy, pandas и jupyter. Я также установил RPy2 (но должен был включить флаг доверенного хоста):
(env34) $ pip install rpy2 --trusted-host=https://pypi.org/simple/cffi
Я также установил последнюю версию R (3.6.0) в папку по умолчанию в папке «Программы» и отредактировал .bash_profile, чтобы создать переменную среды RHOME, добавив следующее:
RHOME="/Library/Frameworks/R.framework/Resources"
export RHOME
Теперь, когда я запускаю Python в виртуальной среде, я могу без проблем импортировать rpy2. Тем не менее, я пытаюсь следовать руководству, данному на http://heather.cs.ucdavis.edu/~matloff/rpy2.html, и когда я пытаюсь импортировать rpy2.robjects, используя:
>>> from rpy2.robjects import r
Я получаю следующую ошибку:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/path_to_virtual_environment/env34/lib/python3.4/site-packages/rpy2/robjects/__init__.py", line 14, in <module>
import rpy2.rinterface as rinterface
File "/path_to_virtual_environment/env34/lib/python3.4/site-packages/rpy2/rinterface.py", line 5, in <module>
import rpy2.rinterface_lib._rinterface_capi as _rinterface
File "/path_to_virtual_environment/env34/lib/python3.4/site-packages/rpy2/rinterface_lib/_rinterface_capi.py", line 8, in <module>
from . import conversion
File "/path_to_virtual_environment/env34/lib/python3.4/site-packages/rpy2/rinterface_lib/conversion.py", line 8, in <module>
from . import _rinterface_capi as _rinterface
ImportError: cannot import name '_rinterface_capi'
Насколько я вижу, все файлы, на которые есть ссылки в сообщении, находятся в правильных местах.
Может кто-нибудь интерпретировать это сообщение об ошибке и, возможно, предложить обходной путь?
Заранее спасибо.