2014-02-28 42 views
6

使用scipy.stats時出現錯誤。在導入scipy後的腳本中。不能使用scipy.stats

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

在腳本編輯器中我可以在鍵入scipy後點擊統計。從下拉菜單中, python控制檯我不能從下拉菜單中選擇python.stats,它不在那裏。 我正在使用熊貓2.7和SciPy 0.13.0 這是爲什麼? 任何已知的問題?

+1

你導入的統計,即從'進口SciPy的或stats''導入scipy.stats'。 stats子包不是用'import scipy'導入的,但是你的編輯器可能會用它來完成製表符。 – user333700

+0

「腳本編輯器」? 「下拉菜單」?你在用什麼編輯器?你是如何安裝它的?你是如何安裝python的?在終端中,'python -c「導入scipy.stats」'會給出錯誤?此外,請顯示生成錯誤的代碼以及導入scipy.stats的代碼。 –

+0

謝謝,使用導入scipy.stats工作。 – user3276418

回答

7

擴大我的評論(有一個列出的答案)。

與許多其他大型軟件包一樣,Scipy不會自動導入所有模塊。如果我們想使用scipy的子包,那麼我們需要直接導入它們。

但是,某些scipy子包會加載其他scipy子包,因此例如導入scipy.stats也會導入大量其他包。但我從不依賴這個在命名空間中提供子包。

在使用SciPy的許多包,首選模式是導入子包,讓他們可以通過自己的名字,例如:

>>> 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

也許會提到從scipy導入的明確指導:http://docs.scipy.org/doc/scipy/reference/api.html(這樣做經常顯示出來,而且這裏的'canonic'答案確實很好SO。) –

+0

謝謝,這解釋了觀察到的行爲。使用import.scipy.stats解決了。 – user3276418