我想使用一些需要 R 版本 3.4 及更高版本的 R 包。我想通过 rpy2 (2.8) 在 python (3.6.1) 中访问这些包。
我安装了 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)
作为我的解释器时,我收到错误:
回溯(最后一次调用):文件“/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 行,在 import rpy2.rinterface as rinterface File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages /rpy2/rinterface/初始化.py",第 92 行,从 rpy2.rinterface._rinterface 导入 (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
安装,它也通过Anaconda安装了R版本3.3.2。然后我可以将解释器更改为/anaconda/bin/python
并可以正常使用 rpy2,但我不能使用我关心的 R 包,因为它们需要 R 版本 3.4 及更高版本。显然,Anaconda 可以安装的最旧版本是 3.3.2,那么有什么办法可以将 rpy2 与 R 版本 3.4 一起使用?
我可以看到这个问题的两个通用解决方案。一种是通过 conda 安装 rpy2,然后以某种方式将其依赖的 R 更改为系统中的 3.4。另一种解决方案是解决错误
库版本不兼容:_rinterface.cpython-36m-darwin.so需要8.0.0或更高版本,但libiconv.2.dylib提供7.0.0版本
经过一番挣扎,我发现两者都没有好的结果。