scipy 0.8 + numpy 1.5 Problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hscherer
User
Beiträge: 14
Registriert: Donnerstag 25. März 2010, 22:07
Wohnort: München

Hallo alle zusammen,
im Rahmen eines "updates" der SuSe11.3 Distribution wurde numpy 1.5 installiert (vorher numpy 1.3)
Seitdem bekommen ich beim Import von "scipy.stats" eine Fehlermeldung (siehe unten). Versuchsweise habe ich den Source Code von scipy0.8 kompiliert und installiert. Dies bring leider keine Verbesserung.
Interessant an der Fehlermeldung sind eigentlich nur die letzten beiden Zeilen, aber leider kann ich relativ wenig damit anfangen.
Das Problem ist definitv erst nach dem "update" auf numpy 1.5 entstanden.

Im Prinzip benötige ich von "scipy.stats" als einziges die Funktion "scipy.stats.linregress()". Gibt es für diese Funktion eventuell einen Ersatz. Dann könnte ich komplett auf den Import von "scipy.stats" verzichten

Traceback (most recent call last):
File "/home/spiele/Python/DQE/src/MTF_Test.py", line 6, in <module>
from DQE.Funktionen._MTF import _MTF
File "/home/spiele/Python/DQE/src/DQE/Funktionen/_MTF.py", line 94, in <module>
from DQE.Funktionen._MTF_Berechnung import _MTF_Berechnung
File "/home/spiele/Python/DQE/src/DQE/Funktionen/_MTF_Berechnung.py", line 68, in <module>
import scipy.stats as spstats
File "/usr/lib64/python2.6/site-packages/scipy/stats/__init__.py", line 7, in <module>
from stats import *
File "/usr/lib64/python2.6/site-packages/scipy/stats/stats.py", line 203, in <module>
from morestats import find_repeats #is only reference to scipy.stats
File "/usr/lib64/python2.6/site-packages/scipy/stats/morestats.py", line 7, in <module>
import distributions
File "/usr/lib64/python2.6/site-packages/scipy/stats/distributions.py", line 27, in <module>
import vonmises_cython
File "numpy.pxd", line 30, in scipy.stats.vonmises_cython (scipy/stats/vonmises_cython.c:2939)
ValueError: numpy.dtype does not appear to be the correct type object
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Das hängt vermutlich damit zusammen, das Binärschnittstelle (engl.: application binary interface (ABI)) von NumPy in der Version 1.4 geändert wurde. Das hätte eigentlich rückwärtskompatibel gewesen sein sollen, aber Cython hat das wohl nicht mitgemacht [1].

Um das Problem zu umgehen, musst du eine NumPy und ein SciPy Library finden, die mit der gleichen Version von Cython kompiliert worden sind. Wenn SuSe kein eigenes SciPy hat (die sollte eigentlich funktionieren), musst du sowohl NumPy als auch SciPy selbst kompilieren. Beides ist nicht wirklich schwer. Schau dir die mitgelieferte ReadMe-Dateien an. Da wird es gut erklärt. Die Erklärungen im Internet sind leider alle veraltet.

Hoffe es hilft.
Grüße
Gerrit
hscherer
User
Beiträge: 14
Registriert: Donnerstag 25. März 2010, 22:07
Wohnort: München

Hallo Gerrit,

vielen dank für den Hinweis.
Ich werde am Wochenende versuchen die Sourcen sowohl von numpy 1.5 als auch von scipy 0.8 neu zu compilieren und entsprechend zu installieren.
Meine letzten C-Programme sind fast 10 Jahre her da in meiner Firma IDL als Entwicklungssprache verwendet wird. Allerdings war ich bei dem ersten Versuch scipy zu compilieren etwas irritiert über die vielen Compiler "warnings". Aus meiner Uni Zeit (wie gesagt 10 Jahre her) erinnere ich mich aber schon noch, daß man die "warnings" vom "gcc" in der Regel ernst nehmen sollte.
"unused variable xyz" stört nicht wirklich macht aber die eigentliche Fehlersuche schwierig bzw. überdecken die wichtigen "gcc" Meldungen.
Ist hier später eine Bereinigung des Codes geplant ?
lunar

@[user:hscherer:]: Das musst Du die Entwickler von scipy fragen. Allerdings lassen sich manche Warnungen, insbesondere solche wegen unbenutzter Variablen, unter Umständen gar nicht vermeiden.
Antworten