我正在尝试使用rpy2从Python调用R。这曾经对我有用了一段时间,但我刚刚重新安装了Anaconda并升级到Python3.5和R 3.1.3(仍在OS X 10.7上)。现在我跑的时候:
from rpy2 import robjects as ro
我收到了rpath错误:
ImportError: dlopen(/Users/User1/anaconda/lib/python3.5/site-packages/rpy2/rinterface/_rinterface.cpython-35m-darwin.so, 2):
Library not loaded: @rpath/R/lib/libR.dylib
Referenced from: /Users/User1/anaconda/lib/python3.5/site-packages/rpy2/rinterface/_rinterface.cpython-35m-darwin.so
Reason: image not found
这是来自Eclipse(Kepler)内部,使用Anaconda / conda构建python环境。 R安装是使用标准CRAN安装完成的(选择将安装在OS X 10.7上的最新版本,即3.1.3),并将其放在此处:
/Library/Frameworks/R.framework/Versions/3.1/Resources/lib/libR.dylib
看着:
otool -L _rinterface.cpython-35m-darwin.so
显示rpy2接口二进制文件要查找的路径:
_rinterface.cpython-35m-darwin.so:
@rpath/R/lib/libR.dylib (compatibility version 3.2.0, current version 3.2.2)
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
@rpath/./libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
/usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 46.1.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
/Users/aaronmeurer/anaconda/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
显示rpath调用,显然在上面安装的位置找不到libR.dylib。
我已经搜索过其他相关帖子,并尝试使用install_name_tool将@ rpath / R / lib / libR.dylib修改为libR.dylib的固定路径,但没有快乐,我收到有关_rinterface.cpython的错误消息-35m-darwin.so是一个格式错误的对象:
install_name_tool -change @rpath/R/lib/libR.dylib /Library/Frameworks/R.framework/Versions/3.1/Resources/lib/libR.dylib _rinterface.cpython-35m-darwin.so
install_name_tool: object: _rinterface.cpython-35m-darwin.so malformed object (unknown load command 16)
还有其他建议吗?