2016-07-27 14 views
0

ich vor kurzem installiert haben Scipy, Numpy und Scikit-Learn von pip verwenden, aber wenn ich starten Sie das Programm unterImport: kann nicht Namen ‚Baum‘ für sklearn importieren

from sklearn import tree 

features = [[140, 1], [130, 1], [150, 1], [170, 1]] #input 
labels = [0, 0, 1, 1] #output 

clf = tree.DecisionTreeClassifier() 
clf = clf.fit(features, labels) #fit = find patterns in data 

print (clf.predict([[160, 0]])) 

Die Schale druckt diesen Fehler

Traceback (most recent call last): 
    File "C:/Machine Learning/sklearn.py", line 1, in <module> 
    from sklearn import tree 
    File "C:/Machine Learning\sklearn.py", line 1, in <module> 
    from sklearn import tree 
ImportError: cannot import name 'tree' 

Weiß jemand, wie man das löst? Ich habe versucht, es zu deinstallieren und neu zu installieren, aber ich bekomme den gleichen Fehler. Vielen Dank im Voraus!

+1

Sie haben Ihre Datei 'sklearn.py' aufgerufen. Hör auf. – user2357112

+0

Ich änderte den Namen und ich bekomme den gleichen Fehler:/ – AlphaBetaGamma96

+0

Löschen Sie alle 'sklearn.pyc' Datei, die möglicherweise aus Ihrer Datei kompiliert wurden, starten Sie Python neu und versuchen Sie es erneut. – user2357112

Antwort

1

Die Lösung besteht darin, Ihre "sklearn.py" im Ordner "Machine Learning" auf einen anderen Namen, aber nicht "sklearn.py" umzubenennen.

Warum? Das ist der Mechanismus der Suchsequenz von Python-Modulen. Versuchen Sie prepend diese Zeilen zu Ihrem „sklearn.py“:

import sys 
print(sys.path) 

Sie finden das erste Element der Ausgabeliste finden, ist immer eine leere Zeichenfolge, die das aktuelle Verzeichnis bedeutet die höchste Priorität auf der Suche Module hat. Läuft from sklearn import tree im Ordner "C: \ Machine Learning" importiert den lokalen gleichen Namen "sklearn.py" als "Sklearn" -Modul, anstatt das Machine Learning-Modul global zu importieren.

+0

Ich habe den Namen geändert und in einem anderen Verzeichnis mit allen Site-Paketen gespeichert. Aber ich bekomme den gleichen Fehler. Ich bin neu bei der Verwendung von Sklearn und ich habe erst vor etwa einem Monat begonnen, Python zu lernen. – AlphaBetaGamma96

+0

OK. Können Sie überprüfen, ob es in Ihrem Arbeitsbereich einen Ordner "* .pyc" (py2) oder "__pycache__" (py3) gibt und alle löschen? Kannst du auch eine neue '.py' Datei schreiben,' import sklearn' dann 'print (sklearn)' versuchen und das Ergebnis hier posten? –