2017-02-21 32 views
0

在Python進口ggplot我在python運行以下命令:分段故障,同時通過rpy2

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) 
+0

我不是Python用戶(但是),但在R世界中報告錯誤的做法是假定seg-fault是事實上的錯誤指示,並且這些錯誤應該報告給任何責任方處理這些。錯誤報告SO不鼓勵有問題的R代碼。這看起來好像沒有正確安裝Rcpp,但是你的Python包的作者應該檢查這個問題,而不是讓它被seg-fault指示。添加了[rcpp]標籤,因此Dirk可以提供更深入的見解。 –

+0

我在@ 42這裏。您可能只需要重新安裝RPy2和/或Rcpp堆棧。在我的Ubuntu盒子(en)中,你的兩行Python無誤地工作在Python 2.7中...... –

+0

'R_ClassSymbol'是'libR.so'提供的一個符號,所以推測你的系統在某種程度上配置錯誤,使得'rpy2 '不加載該共享對象。 –

回答

0
  1. rpy2是一個包,當你使用Python提供訪問R上。因此,首先確保在編譯您的R時啓用了R共享庫,如下所示: ./configure --prefix = * --with-x = no --enable-R-shlib =是
  2. 確保您指定了以下的環境變量,你發佈你的rpy2包之前: 出口C_INCLUDE_PATH = /路徑/到/ R/lib64下/ R /包括
  3. 最後但並非安裝最少,只有那些包時,所有這一切都要求滿意可以正確導入python進口商。如果沒有,您可能需要重新安裝R軟件包。