2014-02-28 6 views
6

Ich bekomme einen Fehler bei der Verwendung von scipy.stats. in einem Skript nach dem Import von scipy.Kann scipy.stats nicht verwenden

AttributeError: 'module' object has no attribute 'stats' 

Im Skript-Editor kann ich nach Eingabe von scipy auf Statistiken klicken. aus dem Pulldown-Menü, innerhalb der Python-Konsole kann ich python.stats aus dem Pulldown-Menü nicht auswählen, es ist nicht da. Ich benutze Pandas 2.7 und SciPy 0.13.0 Warum ist das? Alle bekannten Probleme?

+1

Haben Sie importieren Statistiken, also 'von scipy Import stats' oder' scipy.stats importieren. stats-Unterpaket wird nicht mit 'import scipy' importiert, aber Ihr Editor könnte es für die tab-Vervollständigung tun. – user333700

+0

"Skript-Editor"? "Aufklappmenü"? Welchen Editor benutzen Sie? Wie hast du es installiert? Wie hast du Python installiert? In einem Terminal, importiert 'python -c" scipy.stats "' einen Fehler? Zeigen Sie außerdem den Code, der den Fehler generiert, und den Code, der scipy.stats importiert. –

+0

Danke, Import scipy.stats funktioniert. – user3276418

Antwort

7

erweitern auf meinen Kommentar (um eine aufgelistete Antwort zu haben).

Scipy, wie viele andere große Pakete, importiert nicht alle Module automatisch. Wenn wir die Unterpakete von scipy verwenden wollen, müssen wir sie direkt importieren.

Einige Scipy-Unterpakete laden jedoch andere scipy-Unterpakete, sodass zum Beispiel das Importieren von scipy.stats auch eine große Anzahl der anderen Pakete importiert. Aber ich verlasse mich nie darauf, das Subpackage im Namespace verfügbar zu haben.

In vielen Paketen, die scipy verwenden, ist das bevorzugte Muster des Subpackages zu importieren, um sie mit ihren Namen zur Verfügung, zum Beispiel:

>>> from scipy import stats, optimize, interpolate 


>>> import scipy 
>>> scipy.stats 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'stats' 
>>> scipy.optimize 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'optimize' 

>>> import scipy.stats 
>>> scipy.optimize 
<module 'scipy.optimize' from 'C:\Python26\lib\site-packages\scipy\optimize\__init__.pyc'> 
+1

Vielleicht erwähnen Sie die explizite Richtlinie für den Import von scipy: http://docs.scipy.org/doc/scipy/reference/api.html (Dies zeigt sich oft genug, und es ist in der Tat gut, hier eine 'kanonische' Antwort zu haben SO.) –

+0

Danke, das erklärt das beobachtete Verhalten. Die Verwendung von import.scipy.stats hat funktioniert. – user3276418

Verwandte Themen