Scikit-learn: Nach Update: ImportError: Kein Modul namens model_selection auf Windows-Computer

Erstellt am 13. Jan. 2016  ·  17Kommentare  ·  Quelle: scikit-learn/scikit-learn

nach erfolgreicher Aktualisierung mit
conda update scikit-learn
auf Windows-Computer
aus sklearn.model_selection importieren GridSearchCV
oder
aus sklearn.model_selection import train_test_split
gibt
ImportError: Kein Modul namens model_selection
ABER, scikit-learn hat erst nach dem Update mit der Arbeit begonnen
conda install -f scipy
pro
http://stackoverflow.com/questions/31012216/updated-anaconda-why-arent-my-ipython-notebooks-working-anymore
Dieses Beispiel läuft übrigens ok
http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html#example -text-document-classification-20newsgroups-py

Hilfreichster Kommentar

Das Modul model_selection wird erst ab der nächsten Version (0.18) verfügbar sein. Sie müssen das alte Modul cross_validation !

Alle 17 Kommentare

Das Modul model_selection wird erst ab der nächsten Version (0.18) verfügbar sein. Sie müssen das alte Modul cross_validation !

Schließen, da dies kein Fehler ist.

ok, aber können Sie bitte helfen, funktionierenden Code für die Datei Exercise_02_sentiment.py zu bekommen
von http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
wie geschrieben
Die Quelle dieses Tutorials finden Sie in Ihrem scikit-learn-Ordner:
scikit-learn/doc/tutorial/text_analytics/

Sie können den Code von der Stable-Doc-Website herunterladen oder den 0.17.X-Zweig in Ihrem Repository auschecken.

Dieses Problem wurde im Januar 2016 geschlossen, ist aber immer noch relevant (Oktober 2016). Lösung:

 ## [2016-Okt-19] Python 3.5 virtuelle Umgebung
 (py35) [victoria @victoria ~]$ conda install scikit-learn
 ...
 Die folgenden NEUEN Pakete werden INSTALLIERT:
 scikit-lernen: 0.18-np111py35_0
 ...
 (py35) [victoria @victoria ~]$ Conda-Liste | grep scikit
 scikit-learn 0.18 np111py35_0 
 ##Python 3.5:
 >>> aus sklearn.model_selection import train_test_split
 Traceback (letzter Anruf zuletzt):
 Datei "", Zeile 1, in
 ImportError: Kein Modul namens 'sklearn.model_selection'
 ## Hülse:
 $ conda install -f scipy
 ...
 Die folgenden NEUEN Pakete werden INSTALLIERT:
 scipy: 0.18.1-np111py35_0
 ...
 ## Python: gleicher Importfehler!! Grrrrrrr.......
 ##http://scikit-learn.org/stable/install.html
 "Wenn Sie bereits eine funktionierende Installation von numpy und scipy haben, ist der einfachste Weg, scikit-learn zu installieren, die Verwendung von pip

 pip install -U scikit-learn

 oder conda:

 conda install scikit-learn"
 $ pip install -U scikit-learn
 Sammeln von Scikit-Learn
 Herunterladen von scikit_learn-0.18-cp35-cp35m-manylinux1_x86_64.whl (11,3 MB)
 100 % |████████████████████████████████| 11,3 MB 162 kB/s 
 Gesammelte Pakete installieren: scikit-learn
 Vorhandene Installation gefunden: scikit-learn 0.17.1
 EINSTELLUNG: Die Deinstallation eines installierten Distutils-Projekts (scikit-learn) ist veraltet und wird in einer zukünftigen Version entfernt. Dies liegt daran, dass die Deinstallation eines Distutils-Projekts das Projekt nur teilweise deinstalliert.
 scikit-learn-0.17.1 deinstallieren:
 Erfolgreich deinstalliert scikit-learn-0.17.1
 Erfolgreich installiert scikit-learn-0.18
 ## Kann JETZT erfolgreich importieren:
 (py35) [victoria @victoria ~]$ P
 [P: Python]
 Python 3.5.2 (Standard, 28.06.2016, 08:46:01) 
 [GCC 6.1.1 20160602] unter Linux
 Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" ein, um weitere Informationen zu erhalten.
 >>> aus sklearn.model_selection import train_test_split
 >>> 
 >>> [Strg-D / Beenden]
 (py35) [victoria @victoria ~]$## :-D

 QED

hmm, ich scheine das Problem von @victoriastuart nicht zu haben. Sind Sie sicher, dass Sie die Umgebung aktivieren / Python in der Umgebung haben, in der Sie conda install scikit-learn ?

nfliu at kilauea in ~
$ conda create -n test python=3
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/nfliu/miniconda2/envs/test:

The following NEW packages will be INSTALLED:

    openssl:    1.0.2j-0
    pip:        8.1.2-py35_0
    python:     3.5.2-0
    readline:   6.2-2
    setuptools: 27.2.0-py35_0
    sqlite:     3.13.0-0
    tk:         8.5.18-0
    wheel:      0.29.0-py35_0
    xz:         5.2.2-0
    zlib:       1.2.8-3

Proceed ([y]/n)? y

Linking packages ...
[      COMPLETE      ]|###################################################| 100%
#
# To activate this environment, use:
# > source activate test
#
# To deactivate this environment, use:
# > source deactivate test
#

nfliu at kilauea in ~
$ source activate test
(test) nfliu at kilauea in ~
$ conda install scikit-learn
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/nfliu/miniconda2/envs/test:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    numpy-1.11.2               |           py35_0         2.7 MB
    scipy-0.18.1               |      np111py35_0        12.3 MB
    scikit-learn-0.18          |      np111py35_0         4.6 MB
    ------------------------------------------------------------
                                           Total:        19.6 MB

The following NEW packages will be INSTALLED:

    mkl:          11.3.3-0
    numpy:        1.11.2-py35_0
    scikit-learn: 0.18-np111py35_0
    scipy:        0.18.1-np111py35_0

Proceed ([y]/n)? y

Fetching packages ...
numpy-1.11.2-p 100% |#############################################################################################################################################################################################| Time: 0:00:01   1.57 MB/s
scipy-0.18.1-n 100% |#############################################################################################################################################################################################| Time: 0:00:02   6.30 MB/s
scikit-learn-0 100% |#############################################################################################################################################################################################| Time: 0:00:01   2.66 MB/s
Extracting packages ...
[      COMPLETE      ]|################################################################################################################################################################################################################| 100%
Linking packages ...
[      COMPLETE      ]|################################################################################################################################################################################################################| 100%
(test) nfliu at kilauea in ~
$ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sklearn.model_selection import train_test_split
>>>

@nelson-liu: danke für deinen Vorschlag ... Ja: Ich habe die ganze Zeit in meiner virtuellen Python 3.5-Umgebung gearbeitet (Terminal; Python). Arbeite jetzt, laut meiner Antwort. :-)

@victoriastuart Ziemlich sicher ist dir das passiert (siehe große rote Box):
http://scikit-learn.org/dev/install.html#canopy -and-anaconda-for-all-supported-platforms

Versuchen Sie nicht, ein Paket mit Conda zu aktualisieren, das Sie mit pip installiert haben. es wird nicht funktionieren. Es ist ein Setuptools-Fehler.

@amueller -- Hier ist die Sache: Ich bin in einem von CONDA installierten Venv: Zu Beginn bin ich mir ziemlich sicher, dass sklearn nicht vorhanden war (ich habe es vorher in diesem Venv nicht verwendet, also wäre es vorher nicht installiert worden , z.

 (py35) [victoria @victoria ~]$ conda install scikit-learn
 Paketmetadaten abrufen .......
 Paketspezifikationen lösen: ..........
 Paketplan für die Installation in der Umgebung /home/victoria/anaconda3/envs/py35:
 Folgende Pakete werden heruntergeladen:
 Paket | bauen
 ---------------------------|-----------------
 numpy-1.11.2 | py35_0 6.1 MB
 scipy-0.18.1 | np111py35_0 30,4 MB
 scikit-learn-0.18 | np111py35_0 10,8 MB
 theano-0.8.2 | py35_0 3,7 MB
 -------------------------------------------------- ----------
 Gesamt: 51,0 MB
 Die folgenden NEUEN Pakete werden INSTALLIERT:
 scikit-lernen: 0.18-np111py35_0 
 Die folgenden Pakete werden AKTUALISIERT:
 Astropie: 1.1.2-np110py35_0 --> 1.2.1-np111py35_0 
 Flaschenhals: 1.0.0-np110py35_1 --> 1.1.0-np111py35_0 
 matplotlib: 1.5.1-np110py35_0 --> 1.5.1-np111py35_0 
 numpy: 1.10.4-py35_2 --> 1.11.2-py35_0 
 scipy: 0.17.1-np110py35_1 --> 0.18.1-np111py35_0
 theano: 0.7.0-np110py35_0 --> 0.8.2-py35_0 
 Fortfahren ([y]/n)? 
 [... schnippel...]

Hinweis oben:

Die folgenden NEUEN Pakete werden INSTALLIERT: scikit-learn: 0.18-np111py35_0

Zusammenfassend lässt sich sagen, dass ich sklearn nach Standard- und von sklearn empfohlenen (http://scikit-learn.org/stable/install.html) Verfahren installiere -- anscheinend OK installiert (keine Warnungen), dann versuchen, es zu verwenden: schlägt fehl mit esoterische Fehlermeldung >> Google-Suche >> diese Seite importieren. Ich schätze alle Details zu diesem oder jenem (sklearn viz-a-viz NumPy oder SciPy, ...), aber der Hauptpunkt ist, dass ich als Benutzer daran arbeiten musste, dieses Problem zu lösen, das anscheinend (oben) Thread) für einige Benutzer im Gange.

Das Problem war tatsächlich, dass eine Stackoverflow-Antwort auf Code verwies, der noch nicht in Conda/Pip veröffentlicht wurde (wir haben dies erst vor 2 Wochen getan, also funktionierte der Code natürlich bis dahin nicht auf Conda/Pip-installierten Versionen). Ihr Problem scheint ein bisschen unabhängig zu sein, aber ich bin froh, dass Sie es trotzdem zum Laufen gebracht haben.

@nelson-liu: lol danke – und allen Leuten, die an diesem Projekt/der Entwicklung beteiligt sind. Ich weiß, dass es wahnsinnig kompliziert ist und dass Komplikationen wie die hier beschriebenen eine unvermeidliche Tatsache des Lebens sind. Wie auch immer, meine sklearn-Installation scheint jetzt zu funktionieren, wie oben zusammengefasst. [Ich werde es in ein paar Stunden verwenden.] Hoffentlich wird die obige Diskussion andere informieren/helfen. Nochmals viel Anerkennung! :-)

@victoriastuart Ich gehe davon aus, dass Sie die Conda-Umgebung nicht mehr haben / können sie nicht wieder reproduzieren, aber ich wäre gespannt, was:

>>> import sklearn
>>> sklearn.__version__

ergeben würde (ich erwarte, dass es nicht das ist, was wir denken, nämlich nicht 0,18).
Ich vermute, dass es ein Problem mit dem $PYTHONPATH ist und vielleicht Scikit-Learn von einem anderen Ort aus zeichnet; das Beheben eines solchen Fehlers würde hoffentlich solche Fehler später bei anderen Paketen vermeiden.

@nelson-liu: Klar, kein Problem! ;-)

 ----------------------------------------
 PYTHON 3.5 VENV (py35 | p3):
 ----------------------------------------
 [victoria @victoria Vancouver]$ p3
 [Anaconda Python 3.5 venv (Quelle aktivieren py35)]
 (py35) [victoria @victoria Vancouver]$ welche python
 /home/victoria/anaconda3/envs/py35/bin/python
 (py35) [victoria @victoria Vancouver]$ Conda-Liste | egrep -wi 'scikit|numpy|scipy'
 numpy 1.11.2 py35_0
 scikit-learn 0.18 np111py35_0
 scipy 0.18.1 np111py35_0
 (py35) [victoria @victoria Vancouver]$ Pip-Liste | egrep -wi 'scikit|numpy|scipy'
 numpy (1.11.1)
 scikit-image (0.12.3)
 scikit-lernen (0.18)
 scipy (0.17.0)
 (py35) [victoria @victoria Vancouver]$ P
 [P: Python]
 Python 3.5.2 (Standard, 28.06.2016, 08:46:01)
 [GCC 6.1.1 20160602] unter Linux
 Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" ein, um weitere Informationen zu erhalten.
 >>> aus sklearn.model_selection import train_test_split
 >>> sklearn importieren
 >>> sklearn.__version__
 '0,18'
 >>> beenden()
 (py35) [victoria @victoria Vancouver]$ sd
 [Anaconda venv deaktivieren (Quelle deaktivieren)]
 [victoria @victoria Vancouver]$
 ----------------------------------------------------------
 (NICHT-VIRTUAL) HOST-UMGEBUNG (PYTHON 3.5):
 ----------------------------------------------------------
 [victoria @victoria Vancouver]$ welche python
 /usr/bin/python
 [victoria @victoria Vancouver]$ Conda-Liste | egrep -wi 'scikit|numpy|scipy'
 numpy 1.11.1
 numpy 1.10.4 py35_1
 scikit-image 0.12.3 np110py35_0
 scikit-lernen 0.18
 scikit-learn 0.17.1 np110py35_0
 scipy 0.17.0 np110py35_2
 [victoria @victoria Vancouver]$ Pip-Liste | egrep -wi 'scikit|numpy|scipy'
 [victoria @victoria Vancouver]$ P
 [P: Python]
 Python 3.5.2 (Standard, 28.06.2016, 08:46:01)
 [GCC 6.1.1 20160602] unter Linux
 Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" ein, um weitere Informationen zu erhalten.
 >>> sklearn.__version__
 Traceback (letzter Anruf zuletzt):
 Datei "", Zeile 1, in
 NameError: Name 'sklearn' ist nicht definiert
 >>> sklearn importieren
 Traceback (letzter Anruf zuletzt):
 Datei "", Zeile 1, in
 ImportError: Kein Modul namens 'sklearn'
 >>>
 ----------------------------------------
 Python 2.7 VENV (py27 | p2):
 ----------------------------------------
 [victoria @victoria Vancouver]$ p2
 [Anaconda Python 2.7 venv (Quelle aktivieren py27)]
 (py27) [victoria @victoria Vancouver]$ Conda-Liste | egrep -wi 'scikit|numpy|scipy'
 numpy 1.11.1
 numpy 1.10.4 py27_1
 scikit-image 0.12.3 np110py27_0
 scikit-learn 0.17.1 np110py27_0
 scipy 0.17.1
 scipy 0.17.0 np110py27_0
 (py27) [victoria @victoria Vancouver]$ Pip-Liste | egrep -wi 'scikit|numpy|scipy'
 numpy (1.11.1)
 scikit-image (0.12.3)
 scikit-lernen (0.17.1)
 scipy (0.17.1)
 (py27) [victoria @victoria Vancouver]$ P
 [P: Python]
 Python 2.7.12 |Anaconda benutzerdefinierte (64-Bit)| (Standard, 2. Juli 2016, 17:42:40)
 [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] unter Linux2
 Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" ein, um weitere Informationen zu erhalten.
 Anaconda wird Ihnen von Continuum Analytics präsentiert.
 Bitte checkt aus: http://continuum.io/thanks und https://anaconda.org
 >>> sklearn importieren
 >>> sklearn.__version__
 '0.17.1'
 >>>
 (py27) [victoria @victoria Vancouver]$

AFAIK, mein Python 2.7 venv wäre gestern vor meiner Installation in diesem (py35) venv meinem Python 3.5 venv "ähnlich" gewesen.

Entschuldigung, ich meinte das von Conda installierte scikit-learn, mit dem Sie zuvor Probleme hatten. Dies ist der installierte Pip, den Sie darüber legen, um Ihre Probleme zu lösen. Da es so aussieht, als ob Sie hier train_test_split importieren können, zeichnet Python wahrscheinlich von Pip. Ich bin gespannt, wie es wäre, wenn Sie die Dinge, die Sie über pip installiert haben, deinstallieren würden (und damit in den Zustand zurückkehren, in dem Sie den ImportError hatten).

@nelson-liu: ja / oops! Das wurde mir sofort klar, nachdem ich diese Ausgabe veröffentlicht hatte. Jetzt oben aktualisiert. ;-)

Die Python3.5-Umgebung, auf die Sie gezeichnet haben, enthält immer noch scikit-learn from pip, was das Wasser erheblich trübt. Nicht ganz sicher, was auf Ihrem Computer passiert, insbesondere weil Sie scikit-learn nicht einmal in Ihre Root-Umgebung importieren können; Ich denke, dass Scikit-Learn in der py35-Umgebung von einem anderen Ort stammt, den Sie nicht haben möchten. Ich würde Ihren $PATH und $PYTHONPATH überprüfen, wenn Sie zukünftige Probleme wie diese mit anderen Paketen vermeiden möchten, aber es ist gut zu sehen, dass es trotzdem "funktioniert".

Ahhh.. gute Punkte! ;-)

Update: Hey -- guter Fang (schlaue Leute da draußen; ;-) !! Ich hatte Probleme mit meinem $PYTHONPATH, die sich aus der Verwendung von PyCharm Anfang dieses Jahres als meine Python-IDE ergaben. Um diese zu beheben, habe ich in meinem PyCharm-Stammverzeichnis eine my_script.pth erstellt, die meine PYTHONPATHS auflistet, mit symbolischen Links zu dieser *.pth-Datei in meinen von Conda installierten Pyhton-Paketordnern; z.B

/home/victoria/.local/lib/python3.5/site-packages/my_scripts.pth
# symlink to: /home/victoria/PycharmProjects/scripts/my_scripts.pth

[Ich weiß: Es ist kompliziert, aber ich musste es tun.] Lange Rede, kurzer Sinn, ich bevorzuge Geany als meine (Multi-Plattform-)IDE / Editor, also habe ich diese Pfade später repliziert / aktualisiert, zB

/home/victoria/.local/lib/python3.5/site-packages/my_scripts.pth
# symlink (now!) to: /home/victoria/GeanyProjects/Victoria/scripts/my_scripts.pth

Meine (Geany) my_scripts.pth ($PYTHONPATH) Datei zeigte auf

/home/victoria/.local/lib/python2.7

... was, glaube ich, das Problem gewesen sein könnte?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen