Ich habe Probleme beim Laden der R-Paket edgeR
in Python mit rpy2
.Python rpy2 Fehler beim Laden von edgeR R-Paket, aber es ist installiert und funktioniert in R
Wenn ich laufen:
import rpy2.robjects as robjects
robjects.r('''
library(edgeR)
''')
Ich erhalte die folgende Fehlermeldung:
/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py:106: UserWarning: Loading required package: limma
res = super(Function, self).__call__(*new_args, **new_kwargs)
/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py:106: UserWarning: Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/data/scratch/user/source/anaconda/lib/R/library/edgeR/libs/edgeR.so':
/data/scratch/user/source/anaconda/lib/R/library/edgeR/libs/edgeR.so: undefined symbol: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev
res = super(Function, self).__call__(*new_args, **new_kwargs)
/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py:106: UserWarning: Error: package or namespace load failed for ‘edgeR’
res = super(Function, self).__call__(*new_args, **new_kwargs)
Traceback (most recent call last):
File "differential_expression.py", line 221, in <module>
diff_expr_object.run_edgeR()
File "differential_expression.py", line 127, in run_edgeR
probs = call_edger(data, groups, sizes, genes)
File "differential_expression.py", line 64, in call_edger
''')
File "/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/__init__.py", line 321, in __call__
res = self.eval(p)
File "/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py", line 178, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py", line 106, in __call__
res = super(Function, self).__call__(*new_args, **new_kwargs)
rpy2.rinterface.RRuntimeError: Error: package or namespace load failed for ‘edgeR’
Das Hauptproblem Wesen:
rpy2.rinterface.RRuntimeError: Error: package or namespace load failed for ‘edgeR’
Allerdings, wenn ich folgendes ausgeführt:
R
> library(edgeR)
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS release 6.5 (Final)
locale:
[1] LC_CTYPE=en_ZA.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_ZA.UTF-8 LC_COLLATE=en_ZA.UTF-8
[5] LC_MONETARY=en_ZA.UTF-8 LC_MESSAGES=en_ZA.UTF-8
[7] LC_PAPER=en_ZA.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_ZA.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] edgeR_3.12.0 limma_3.26.9
>
Ich kann sehen, edgeR
ist erfolgreich installiert und läuft in R
. Warum würde es in Python nicht funktionieren? Ich habe versucht, andere Pakete von rpy2
z.B. library(tools)
das hat gut funktioniert.
Überprüfen Sie, ob das R installieren ist die gleiche anaconda installieren, so etwas wie 'der R' in der Kommandozeile. Wenn dies nicht der Fall ist, müssen Sie in R (~ anaconda/bin/R) von Anaconda erneut edgeR installieren. – tbrittoborges