【发布时间】:2017-02-21 12:30:28
【问题描述】:
我在 python 中运行以下命令:
from rpy2.robjects.packages import importr
importr( 'ggplot2' )
这在 python-2.7.6 和 rpy2-2.8.3 中运行良好。但是在 python-2.7.8 和 rpy2-2.8.5 上运行时会出现以下错误:
/usr/local/lib/python2.7/dist-packages/rpy2/rinterface/__init__.py:186: RRuntimeWarning: Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/local/lib/R/site-library/Rcpp/libs/Rcpp.so':
/usr/local/lib/R/site-library/Rcpp/libs/Rcpp.so: undefined symbol: R_ClassSymbol
warnings.warn(x, RRuntimeWarning)
Segmentation fault (core dumped)
【问题讨论】:
-
我还不是 python 用户,但在 R 世界中报告错误的做法是假设 seg-fault 是错误的事实指示,这些应该报告给任何责任方处理这些。对于有缺陷的 R 代码,不鼓励向 SO 报告错误。这个看起来你没有正确安装 Rcpp,但是你的 Python 包的作者应该检查这个问题,而不是让它通过 seg-fault 发出信号。添加了 [rcpp] 标签,以便 Dirk 可以提供任何进一步的见解。
-
我和@42 在一起。您可能只需要重新安装 RPy2 和/或 Rcpp 堆栈。在我的 Ubuntu box(en) 上,你的两行 Python 代码在 Python 2.7 上都可以正常工作...
-
R_ClassSymbol是libR.so提供的符号,因此推测您的系统在某种程度上配置错误,导致rpy2没有加载该共享对象。