2017-02-21 5 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 2.7で2行のPythonがうまく動作します... –

+0

'R_ClassSymbol'は' libR.so'によって提供されるシンボルなので、あなたのシステムは何らかの形で誤って 'rpy2 'はその共有オブジェクトをロードしていません。 –

答えて

0
  1. rpy2はあなたのpythonを使用しているとき、Rへのアクセスを提供するパッケージです。まず、Rをコンパイルするときに、R共有ライブラリを有効にしたことを確認してください。 ./configure --prefix = * --with-x = no -enable-R-shlib = yes
  2. makeこの要件のときにすべての 輸出C_INCLUDE_PATH = /パス/に/ R/lib64に/ R /は
  3. なく、少なくとも最後を含める、パッケージのみがインストールされて:あなたはrpy2パッケージを配布する前に、次の環境変数を指定していることを確認Pythonでimportrで正しくインポートすることができます。そうでない場合は、Rパッケージを再インストールする必要があります。