有一件事情,我不明白。
为什么这样
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'
有一件事情,我不明白。
为什么这样
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'
scipy
模块没有名为sparse
的属性。只有在你导入scipy.sparse
时才会定义该属性。import scipy
时自动导入; 你需要显式地导入它们。大多数包都遵循这个规���,虽然一个包可以选择导入自己的子模块。例如,如果scipy/__init__.py
包含语句import scipy.sparse
,那么只要你导入scipy
,sparse
子模块就会被导入。sparse
、Sparse
、SParse
还是sParse
的一个模块(如果它与解析S表达式有关,也许就更麻烦了)。Python通过要求显式导入来告诉它正确的名称(可以在程序中或包的__init__.py
中进行),从而保证了在区分大小写和不区分大小写的文件系统上具有一致的行为。 - Benfrom scipy import sparse
?当对象的属性不可用时,会引发AttributeError。
属性引用是由主体、句点和名称组成的:
attributeref ::= primary "." identifier
要返回该对象的有效属性列表,请使用dir()
,例如:
dir(scipy)
所以你可能只需要做这个简单的步骤:import scipy.sparse