Почему этот атрибут AttributeError в python происходит?

Есть одна вещь, которую я не понимаю.

Почему это

import scipy # happens with several other modules, too. I took scipy as an example now... matrix = scipy.sparse.coo_matrix(some_params) 

произвести эту ошибку:

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

4 Solutions collect form web for “Почему этот атрибут AttributeError в python происходит?”

Это происходит потому, что в scipy модуле нет атрибута, называемого sparse . Этот атрибут определяется только при import scipy.sparse .

Субмодули автоматически не импортируются, когда вы просто import scipy ; вам нужно импортировать их явно. То же самое справедливо для большинства пакетов, хотя пакет может выбрать импорт собственных подмодулей, если захочет. (Например, если scipy/__init__.py включил оператор import scipy.sparse , тогда sparse субмодуль будет импортироваться всякий раз, когда вы импортируете scipy .)

Потому что вы импортировали scipy, а не разреженные. Попробуйте from scipy import sparse ?

AttributeError возникает, когда атрибут объекта недоступен.

Ссылка на атрибут является первичной, за которой следует период и имя:

attributeref :: = primary "." идентификатор

Чтобы вернуть список допустимых атрибутов для этого объекта, используйте dir() , например:

 dir(scipy) 

Поэтому, вероятно, вам нужно просто сделать это: import scipy.sparse

По умолчанию пространство имен в Python – "__main__" . Когда вы используете import scipy , Python создает отдельное пространство имен в качестве имени вашего модуля. Правило в Pyhton: когда вы хотите вызвать атрибут из других пространств имен, вы должны использовать полное имя атрибута.

Python - лучший язык программирования в мире.