Il y a une chose que je ne comprends pas.
Pourquoi cela
import scipy # happens with several other modules, too. I took scipy as an example now...
matrix = scipy.sparse.coo_matrix(some_params)
produire cette erreur:
AttributeError: 'module' object has no attribute 'sparse'
Cela se produit car le module scipy
n'a aucun attribut nommé sparse
. Cet attribut n'est défini que lorsque vous import scipy.sparse
.
Les sous-modules ne sont pas automatiquement importés lorsque vous venez de import scipy
; vous devez les importer explicitement. Il en va de même pour la plupart des packages, bien qu'un package puisse choisir d'importer ses propres sous-modules s'il le souhaite. (Par exemple, si scipy/__init__.py
comprenait une déclaration import scipy.sparse
, then le sous-module sparse
serait importé chaque fois que vous importez scipy
.)
Parce que vous avez importé scipy, pas clairsemé. Essayez from scipy import sparse
?
AttributeError est levé lorsque l'attribut de l'objet n'est pas disponible.
Un référence d'attribut est un primaire suivi d'un point et d'un nom:
attributeref :: = primary "." identifiant
Pour renvoyer une liste d'attributs valides pour cet objet, utilisez dir()
, par exemple:
dir(scipy)
Donc, vous devez probablement faire simplement: import scipy.sparse