ひとつだけ、理解できないことがあります。
なぜこれが
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
という名前の属性がないために発生します。その属性は、import scipy.sparse
。
サブモジュールは、import scipy
;それらを明示的にインポートする必要があります。パッケージは、必要に応じて独自のサブモジュールをインポートすることもできますが、ほとんどのパッケージに同じことが当てはまります。 (たとえば、scipy/__init__.py
ステートメントを含むimport scipy.sparse
、thensparse
をインポートするたびにscipy
サブモジュールがインポートされます。)
スパースではなく、scipyをインポートしたためです。 from scipy import sparse
?
AttributeError は、オブジェクトの属性が利用できない場合に発生します。
属性参照 は、ピリオドと名前が続くプライマリです。
attributeref :: =プライマリ "。"識別子
そのオブジェクトの有効な属性のリストを返すには、 dir()
を使用します。例:
dir(scipy)
だからおそらくあなたは単にする必要があります:import scipy.sparse