2014-09-10 2 views
2

Я пытаюсь сделать линейную регрессию с помощью scipy.stats.linregress(). Однако, когда я бегу мой сценарий, я получаю сообщение об ошибкеНе удается найти модуль в python

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

Я использую Anaconda Python 2.7 распределение, в документации говорится, что модуль установлен. Anaconda documentation

В интерактивном интерпретаторе python я могу импортировать модуль scipy, но не могу найти статистику. Когда я смотрю на его __version__ он говорит 0.14, который должен иметь модуль статистика ..

Я действительно не могу догадаться, почему статистика недоступна ..

+0

Можете ли вы опубликовать код программы, который вы используете? –

ответ

5

Эта ошибка:

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

Означает, что он говорит. В модуле scipy нет атрибута с именем stats.

Не потому, что на диске нет такой вещи, а потому, что такая вещь не была импортирована, потому что вы даже не пытались ее импортировать.

scipy есть упаковка. Как объясняет the Python tutorial, импорт пакета не импортирует все его подмодули.

Некоторые пакеты имеют __init.py__, который автоматически импортирует некоторые или все пакеты. * Но это было бы плохой идеей для scipy, потому что есть тонны из них, так что потребуется некоторое время, чтобы импортировать все из них, и обычно вам нужен только один или два в данном проекте.

Итак, вам просто нужно сделать, это:

import scipy.stats 

* Есть также некоторые случаи, как os которые поддельные существо пакеты, но не являются, так что вы можете использовать os.path без импорта, или такие случаи, как pyobjc, которые создают специальные объекты-заполнители для своих модулей, которые автоматически импортируют реальные модули при первом доступе.

+0

Отличный ответ! Благодарю. – HANSEMINATOR

1

я получаю ту же ошибку, когда я импортировать scipy вместо scipy.stats. Вы пробовали

import scipy.stats 
scipy.stats.linregress() 
+0

На самом деле это не ответ, просто предложение для отладки. – abarnert

+1

Зависит от того, исправляет ли я проблему, которую я предполагаю. –

+0

Согласен. Скорее всего, проблема заключается в том, что в коде используется только «import scipy». 'stats' не автоматически импортируется, если используется только' import scipy', и это можно подтвердить, посмотрев файл 'site-packages/scipy/__ init __. py'. 'stats' является подмодулем, который должен быть явно импортирован с использованием' import scipy.stats' – skyuuka

Смежные вопросы