2015-06-10 13 views
10

Ich versuche, eine Funktion aus dem Cluster-Modul aufrufen, etwa so:Fehler beim Importieren Scikit-Learn-Module

import sklearn 
db = sklearn.cluster.DBSCAN() 

und ich erhalte den folgenden Fehler:

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

Tab-Vervollständigung in IPython scheint Zugang zu den Modulen base, clone, externals, re, setup_module, sys und warning zu haben. Nichts anderes, obwohl sich andere (einschließlich Cluster) im sklearn-Verzeichnis befinden.

PBU Rat unten Nach und mit

from sklearn import cluster 

ich:

Traceback (most recent call last): 
    File "test.py", line 2, in <module> 
    from sklearn import cluster 
    File "C:\Python34\lib\site-packages\sklearn\cluster\__init__.py", line 6, in <module> 
    from .spectral import spectral_clustering, SpectralClustering 
    File "C:\Python34\lib\site-packages\sklearn\cluster\spectral.py", line 13, in <module> 
    from ..utils import check_random_state, as_float_array 
    File "C:\Python34\lib\site-packages\sklearn\utils\__init__.py", line 16, in <module> 
    from .class_weight import compute_class_weight, compute_sample_weight 
    File "C:\Python34\lib\site-packages\sklearn\utils\class_weight.py", line 7, in <module> 
    from ..utils.fixes import in1d 
    File "C:\Python34\lib\site-packages\sklearn\utils\fixes.py", line 318, in <module> 
    from scipy.sparse.linalg import lsqr as sparse_lsqr 
    File "C:\Python34\lib\site-packages\scipy\sparse\linalg\__init__.py", line 109, in <module> 
    from .isolve import * 
    File "C:\Python34\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 6, in <module> 
    from .iterative import * 
    File "C:\Python34\lib\site-packages\scipy\sparse\linalg\isolve\iterative.py", line 7, in <module> 
    from . import _iterative 
ImportError: DLL load failed: The specified module could not be found. 

ich mit Python bin 3.4 auf Windows, 0.16.1 Scikit-Learn.

+2

Ich verstehe nicht, wie importieren Sie 'sklearn'? – stellasia

+1

warum nicht resinstall? möglicherweise ist sklearn korrupt. – pbu

Antwort

4

Problem war mit scipy/numpy zu installieren. Ich hatte die (normalerweise ausgezeichneten!) Inoffiziellen Installateure von http://www.lfd.uci.edu/~gohlke/pythonlibs/ benutzt. Deinstallieren/neu installieren von dort machte keinen Unterschied, aber die Installation mit den offiziellen Installern (verbunden von http://www.scipy.org/install.html) hat den Trick gemacht.

+0

Numpy arbeitete für mich von http://www.lfd.uci.edu/~gohlke/pythonlibs/ aber scipy war peinlich und musste die win32 superpack.exe von sourceforge herunterladen. Alles funktioniert jetzt aber. Danke Jon. –

-1

Diese Linie oben auf die Python-Datei

from sklearn import cluster 

Das sollte es tun :))

+2

dies erzeugt einen anderen Fehler; siehe Update zum ursprünglichen Beitrag. –

23

Sie verwenden wahrscheinlich nicht Numpy + MKL, sondern nur Numpy.

hatte ich das gleiche Problem und Numpy mit MKL

pip install --upgrade --force-reinstall "numpy-1.10.2+mkl-cp35-none-win32.whl"

es fest (aktualisieren Sie die Datei auf die neueste Version) neu zu installieren.

+0

Das hat auch für mich funktioniert. – ninehundred

+2

Wenn Sie auf 64-Bit laufen, können Sie Numpy + NKL von http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy installieren –

+0

Das funktionierte auch für mich. –

1

Ich benutze anaconda habe den gleichen Fehler wie das OP, beim Laden Orange oder PlotNine. Ich kann mich nicht erinnern, wann dies geschehen ist.

Verfolgen der Abhängigkeit von Anaconda3\Lib\site-packages\scipy\special\_ufuncs.cp36-win32.pyd, libifcoremd.dll und libmmd.dll fehlen in DependencyWalk. Wenn Sie sie in Anaconda-Root-Verzeichnissen suchen, befinden sie sich sowohl in ICC_RT als auch in einer Version des MKL-Pakets.

Hinzufügen von Anaconda3\pkgs\mkl-2017.0.3-0\Library\bin zu PATH, scheint SciPy und NumPy related DLL-Ladefehler zu beheben, das obige Paket beginnt wieder zu arbeiten.

Ich weiß immer noch nicht, wie man das richtig behebt. Offensichtlich besteht der Nachteil darin, dass das MKL-Paket aktualisiert werden kann und sich die Versionen ändern können. In diesem Aspekt ist es ebenso unpraktisch, ein nicht verwaltetes Paket hinzuzufügen.

ICC_RT Neuinstallieren das Problem behoben für mich, libmmd.dll und die damit verbundenen DLLs werden in anaconda3/library/bin danach automatisch kopiert, die automatisch in PATH durch activate Befehl hinzugefügt wird. Alle vorherigen numpy/scipy verwandten cant load DLL Fehler sind jetzt weg.

0

aus dem Fehlerprotokoll, zeigt es, dass scipy Modul ist das letzte Modul

File "C:\Python34\lib\site-packages\sklearn\utils\fixes.py", line 318, in <module> 
    from scipy.sparse.linalg import lsqr as sparse_lsqr 
    File "C:\Python34\lib\site-packages\scipy\sparse\linalg\__init__.py", line 109, in <module> 
    from .isolve import * 
    File "C:\Python34\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 6, in <module> 
    from .iterative import * 
    File "C:\Python34\lib\site-packages\scipy\sparse\linalg\isolve\iterative.py", line 7, in <module> 
    from . import _iterative 
ImportError: DLL load failed: The specified module could not be found. 

Ich habe den gleichen Fehler, die das gleiche Protokoll zeigen, die problem'd gegangen, wenn ich deinstallieren importieren fehlschlägt/install scipy:

pip uninstall scipy 
pip install scipy 
Verwandte Themen