2015-06-10 20 views
10

Sto cercando di chiamare una funzione dal modulo cluster, in questo modo:Errore importazione scikit-learn moduli

import sklearn 
db = sklearn.cluster.DBSCAN() 

ed ottengo il seguente errore:

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

Tab-completamento in IPython, sembra che abbia accesso ai moduli base, clone, esterni, re, setup_module, sys e warning. Nient'altro, anche se altri (incluso il cluster) sono nella directory sklearn.

seguendo il consiglio di PBU qui sotto e utilizzando

from sklearn import cluster 

ottengo:

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. 

sto usando Python 3.4 su Windows, scikit-learn 0.16.1.

+2

Non capisco, come si importa 'sklearn'? – stellasia

+1

perché non si reinstalla? potrebbe essere sklearn è corrotto. – pbu

risposta

4

problema era con SciPy/NumPy installazione. Stavo usando gli installatori non convenzionali (normalmente eccellenti!) Dal http://www.lfd.uci.edu/~gohlke/pythonlibs/. Disinstallare/reinstallare da lì non ha fatto differenza, ma l'installazione con i programmi di installazione ufficiali (collegati da http://www.scipy.org/install.html) ha fatto il trucco.

+0

Numpy ha funzionato per me da http://www.lfd.uci.edu/~gohlke/pythonlibs/ ma scipy è stato scomodo e ha dovuto scaricare il superpack.exe di win32 da sourceforge. Tutto funziona però. Grazie Jon. –

-1

posto questa linea sulla parte superiore del file python

from sklearn import cluster 

che dovrebbe farlo :))

+2

questo genera un errore diverso; vedi l'aggiornamento al post originale. –

23

Probabilmente non usi Numpy + MKL, ma solo Numpy.

Ho avuto lo stesso problema e reinstallare Numpy con MKL

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

è stato risolto (aggiornare il file alla versione più recente).

+0

Questo ha funzionato anche per me. – ninehundred

+2

Se stai usando 64-bit puoi installare Numpy + NKL da http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy –

+0

Questo ha funzionato anche per me. –

1

Sto usando anaconda ha ottenuto lo stesso errore dell'OP, durante il caricamento di Orange o PlotNine. Non riesco a ricordare quando questo inizia a succedere.

Tracciamento della dipendenza di Anaconda3\Lib\site-packages\scipy\special\_ufuncs.cp36-win32.pyd, libifcoremd.dll e libmmd.dll mancante in DependencyWalk. Cercandoli nella direttrice di root anaconda, si trovano sia in ICC_RT che in una versione del pacchetto MKL.

L'aggiunta di Anaconda3\pkgs\mkl-2017.0.3-0\Library\bin a PATH, sembra risolvere il problema di caricamento della DLL correlata a SciPy e NumPy, il pacchetto sopra riportato riprende a funzionare.

Ancora non so come sistemarlo correttamente. Apparentemente il lato negativo è che il pacchetto MKL potrebbe essere aggiornato e le versioni potrebbero cambiare così come il percorso. In questo aspetto è altrettanto sconveniente come aggiungere un pacchetto non gestito.

reinstallazione ICC_RT risolto il problema per me, libmmd.dll e le relative DLL vengono copiati automaticamente in anaconda3/library/bin dopo, che viene aggiunto automaticamente in PATH da activate comando. Tutti gli errori precedenti relativi a numpy/scipy cant load DLL non sono più disponibili.

0

Dal log degli errori, si dimostra che modulo SciPy è il modulo più recente non riesce ad importare

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. 

ho lo stesso errore che mostrano lo stesso registro, il problem'd andato quando disinstallo/install scipy:

pip uninstall scipy 
pip install scipy 
Problemi correlati