Я хотел бы использовать некоторые пакеты R, требующие R версии 3.4 и выше. Я хочу получить доступ к этим пакетам в python (3.6.1) через rpy2 (2.8).
У меня установлена версия R 3.4, и она находится в /Library/Frameworks/R.framework/Resources
. Однако, когда я использую pip3 install rpy2
для установки и использую python 3.6.1 в /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6)
в качестве интерпретатора, я получаю сообщение об ошибке:
Traceback (последний вызов последним): файл "/Users/vincentliu/PycharmProjects/magic/rpy2tester.py", строка 1, в файле импорта из rpy2 robjects "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3 .6 / site-packages / rpy2 / robjects / init .py ", строка 16, в импорте rpy2.rinterface как файл rinterface" /Library/Frameworks/Python.framework/Versions/3.6/lib/ python3.6 / site-packages / rpy2 / rinterface / init .py ", строка 92, в rpy2.rinterface._rinterface import (baseenv, ImportError: dlopen (/Library/Frameworks/Python.framework /Versions/3.6/lib/python3.6/site-packages/rpy2/rinterface/_rinterface.cpython-36m-darwin.so, 2): библиотека не загружена: @ rpath / libiconv.2.dylib Ссылка из: / Library / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6 / site-packages / rpy2 / rinterface / _rinterface.cpython-36m-darwin.so Причина: несовместимая версия библиотеки: _rinterface.cpython-36m-darwin.so требуется версия 8.0.0 или новее, но libiconv. 2. dylib предоставляет версию 7.0.0
Что сначала казалось проблемой, вызванной Anaconda, поэтому я удаляю все файлы, связанные с Anaconda, но проблема не устраняется.
Затем я удалил rpy2, переустановил Anaconda и использовал conda install rpy2
для установки, который также устанавливает R версии 3.3.2 через Anaconda. Затем я могу изменить интерпретатор на /anaconda/bin/python
и нормально использовать rpy2, но я не мог использовать пакеты R, которые мне нужны, потому что им нужна версия R 3.4 и выше. По-видимому, самая старая версия, которую может установить Anaconda, - 3.3.2, так что есть ли способ использовать rpy2 с R версии 3.4?
Я вижу два общих решения этой проблемы. Один из них - установить rpy2 через conda, а затем каким-то образом изменить его зависимый R на 3.4 в системе. Другое решение - устранить ошибку
Несовместимая версия библиотеки: _rinterface.cpython-36m-darwin.so требует версии 8.0.0 или более поздней, но libiconv.2.dylib предоставляет версию 7.0.0
После долгих усилий я не нашел ни одного хорошего результата.