Scikit-learn: después de la actualización: ImportError: ningún módulo llamado model_selection en la computadora con Windows

Creado en 13 ene. 2016  ·  17Comentarios  ·  Fuente: scikit-learn/scikit-learn

después de una actualización exitosa con
actualización de conda scikit-learn
en una computadora con Windows
desde sklearn.model_selection import GridSearchCV
o
de sklearn.model_selection importar train_test_split
da
ImportError: ningún módulo llamado model_selection
PERO, scikit-learn comenzó a funcionar después de la actualización solo después
conda install -f scipy
por
http://stackoverflow.com/questions/31012216/updated-anaconda-why-arent-my-ipython-notebooks-working-anymore
por cierto, este ejemplo está funcionando bien
http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html#example -text-document-class-20newsgroups-py

Comentario más útil

El módulo model_selection estará disponible en la próxima versión (0.18). ¡Tendrá que usar el antiguo módulo cross_validation !

Todos 17 comentarios

El módulo model_selection estará disponible en la próxima versión (0.18). ¡Tendrá que usar el antiguo módulo cross_validation !

Cerrando ya que esto no es un error.

ok, pero puede ayudarnos a obtener un código de trabajo para el archivo exercise_02_sentiment.py
de http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
como esta escrito
La fuente de este tutorial se puede encontrar dentro de su carpeta scikit-learn:
scikit-learn / doc / tutorial / text_analytics /

puede descargar el código desde el sitio web de documentación estable o consultar la rama 0.17.X en su repositorio.

Este problema se cerró en enero de 2016, pero sigue siendo relevante (octubre de 2016). Solución:

 ## [2016-Oct-19] Entorno virtual Python 3.5
 (py35) [victoria @victoria ~] $ conda install scikit-learn
 ...
 Se INSTALARÁN los siguientes paquetes NUEVOS:
 scikit-learn: 0.18-np111py35_0
 ...
 (py35) [victoria @victoria ~] $ conda list | grep scikit
 scikit-learn 0.18 np111py35_0 
 ## Python 3.5:
 >>> de sklearn.model_selection importar train_test_split
 Rastreo (llamadas recientes más última):
 Expediente "", línea 1, en
 ImportError: ningún módulo llamado 'sklearn.model_selection'
 ## cascarón:
 $ conda install -f scipy
 ...
 Se INSTALARÁN los siguientes paquetes NUEVOS:
 scipy: 0.18.1-np111py35_0
 ...
 ## Python: ¡¡mismo error de importación !! Grrrrrrr .......
 ## http://scikit-learn.org/stable/install.html
 "Si ya tiene una instalación funcional de numpy y scipy, la forma más sencilla de instalar scikit-learn es usando pip

 pip install -U scikit-learn

 o conda:

 conda install scikit-learn "
 $ pip install -U scikit-learn
 Recolectando scikit-learn
 Descargando scikit_learn-0.18-cp35-cp35m-manylinux1_x86_64.whl (11.3MB)
 100% | ██████████████████████████████ | 11,3 MB 162 kB / s 
 Instalación de paquetes recopilados: scikit-learn
 Instalación existente encontrada: scikit-learn 0.17.1
 DEPRECACIÓN: La desinstalación de un proyecto instalado de distutils (scikit-learn) ha quedado obsoleto y se eliminará en una versión futura. Esto se debe al hecho de que desinstalar un proyecto de distutils solo desinstalará parcialmente el proyecto.
 Desinstalación de scikit-learn-0.17.1:
 Scikit-learn-0.17.1 desinstalado correctamente
 Se instaló correctamente scikit-learn-0.18
 ## Ahora se puede importar con éxito:
 (py35) [victoria @victoria ~] $ P
 [P: pitón]
 Python 3.5.2 (predeterminado, 28 de junio de 2016, 08:46:01) 
 [GCC 6.1.1 20160602] en Linux
 Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.
 >>> de sklearn.model_selection importar train_test_split
 >>> 
 >>> [Ctrl-D / salir]
 (py35) [victoria @victoria ~] $ ## :-D

 QED

hmm, parece que no tengo el problema de que tienes @victoriastuart . ¿Está seguro de que está activando el entorno / tiene Python en el entorno en el que está 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: gracias por su sugerencia ... Sí: estuve trabajando en mi entorno virtual Python 3.5 todo el tiempo (terminal; Python). Trabajando ahora, según mi respuesta. :-)

@victoriastuart Estoy bastante seguro de que te pasó esto (ver el gran recuadro rojo):
http://scikit-learn.org/dev/install.html#canopy -and-anaconda-para-todas-las-plataformas-compatibles

No intente actualizar un paquete con conda que instaló con pip. no funcionará. Es un error de setuptools.

@amueller - Aquí está la

 (py35) [victoria @victoria ~] $ conda install scikit-learn
 Obteniendo metadatos del paquete .......
 Resolución de especificaciones del paquete: ..........
 Plan de paquete para instalación en environment / home / victoria / anaconda3 / envs / py35:
 Se descargarán los siguientes paquetes:
 paquete | construir
 --------------------------- | -----------------
 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
 -------------------------------------------------- ----------
 Total: 51,0 MB
 Se INSTALARÁN los siguientes paquetes NUEVOS:
 scikit-learn: 0.18-np111py35_0 
 Se ACTUALIZARÁN los siguientes paquetes:
 astropía: 1.1.2-np110py35_0 -> 1.2.1-np111py35_0 
 cuello de botella: 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 
 Continuar ([y] / n)? 
 [... recortar ...]

Nota, arriba:

Se INSTALARÁN los siguientes paquetes NUEVOS: scikit-learn: 0.18-np111py35_0

Entonces, en resumen: según los procedimientos estándar y recomendados por sklearn (http://scikit-learn.org/stable/install.html), instalo sklearn; aparentemente se instala bien (sin advertencias), luego intento usarlo: falla para importar con mensaje de error esotérico >> Búsqueda de Google >> esta página. Aprecio todas las minucias sobre esto o aquello (sklearn viz-a-viz NumPy o SciPy, ...), pero el punto principal es que, como usuario, necesitaba trabajar para resolver este problema, que aparentemente tiene (top of hilo) ha estado en curso para algunos usuarios.

en realidad, el problema era que una respuesta de stackoverflow hacía referencia a un código que aún no se había publicado en conda / pip (lo hicimos hace 2 semanas, por lo que, naturalmente, el código no funcionaba en las versiones instaladas con conda / pip hasta entonces). Su problema parece no estar relacionado, pero me alegra que lo haya hecho funcionar de todos modos.

@ nelson-liu: jajaja gracias, y a todas las personas involucradas en este proyecto / desarrollo. Sé que es increíblemente complicado y que complicaciones como las que se informan aquí son un hecho inevitable. De todos modos, mi instalación de sklearn parece estar funcionando ahora, como se resume anteriormente. [Comenzaré a usarlo en unas horas.] Con suerte, la discusión anterior informará / ayudará a otros. De nuevo, ¡muchas gracias! :-)

@victoriastuart, supongo que ya no tienes el entorno de conda / no puedes volver a reproducirlo, pero tendría curiosidad por ver qué:

>>> import sklearn
>>> sklearn.__version__

rendiría (espero que no sea lo que pensamos que es, es decir, no 0,18).
Sospecho que es un problema con $ PYTHONPATH y quizás dibujar scikit-learn desde alguna otra ubicación; Es de esperar que corregir un error de este tipo evitaría errores en el futuro con otros paquetes.

@ nelson-liu: ¡claro, no hay problema! ;-)

 ----------------------------
 PYTHON 3.5 VENV (py35 | p3):
 ----------------------------
 [victoria @victoria Vancouver] $ p3
 [Anaconda Python 3.5 venv (fuente activa py35)]
 (py35) [victoria @victoria Vancouver] $ qué pitón
 / inicio / victoria / anaconda3 / envs / py35 / bin / python
 (py35) [victoria @victoria Vancouver] $ conda list | 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] lista de $ pip | egrep -wi 'scikit | numpy | scipy'
 numpy (1.11.1)
 imagen-scikit (0.12.3)
 scikit-learn (0,18)
 scipy (0.17.0)
 (py35) [victoria @victoria Vancouver] $ P
 [P: pitón]
 Python 3.5.2 (predeterminado, 28 de junio de 2016, 08:46:01)
 [GCC 6.1.1 20160602] en Linux
 Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.
 >>> de sklearn.model_selection importar train_test_split
 >>> importar sklearn
 >>> sklearn .__ versión__
 '0.18'
 >>> salir ()
 (py35) [victoria @victoria Vancouver] $ sd
 [Anaconda venv desactivado (fuente desactivada)]
 [victoria @victoria Vancouver] $
 ---------------------------------------------
 ENTORNO HOST (NO VIRTUAL) (PYTHON 3.5):
 ---------------------------------------------
 [victoria @victoria Vancouver] $ qué pitón
 / usr / bin / python
 [victoria @victoria Vancouver] Lista de $ conda | egrep -wi 'scikit | numpy | scipy'
 numpy 1.11.1
 numpy 1.10.4 py35_1
 scikit-image 0.12.3 np110py35_0
 scikit-learn 0.18
 scikit-learn 0.17.1 np110py35_0
 scipy 0.17.0 np110py35_2
 [victoria @victoria Vancouver] lista de $ pip | egrep -wi 'scikit | numpy | scipy'
 [victoria @victoria Vancouver] $ P
 [P: pitón]
 Python 3.5.2 (predeterminado, 28 de junio de 2016, 08:46:01)
 [GCC 6.1.1 20160602] en Linux
 Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.
 >>> sklearn .__ versión__
 Rastreo (llamadas recientes más última):
 Expediente "", línea 1, en
 NameError: el nombre 'sklearn' no está definido
 >>> importar sklearn
 Rastreo (llamadas recientes más última):
 Expediente "", línea 1, en
 ImportError: ningún módulo llamado 'sklearn'
 >>>
 ----------------------------
 Python 2.7 VENV (py27 | p2):
 ----------------------------
 [victoria @victoria Vancouver] $ p2
 [Anaconda Python 2.7 venv (fuente activa py27)]
 (py27) [victoria @victoria Vancouver] $ conda list | 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] lista de $ pip | egrep -wi 'scikit | numpy | scipy'
 numpy (1.11.1)
 imagen-scikit (0.12.3)
 scikit-learn (0.17.1)
 scipy (0.17.1)
 (py27) [victoria @victoria Vancouver] $ P
 [P: pitón]
 Python 2.7.12 | Anaconda personalizado (64 bits) | (predeterminado, 2 de julio de 2016, 17:42:40)
 [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] en linux2
 Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.
 Anaconda es presentada por Continuum Analytics.
 Consulte: http://continuum.io/thanks y https://anaconda.org
 >>> importar sklearn
 >>> sklearn .__ versión__
 '0.17.1'
 >>>
 (py27) [victoria @victoria Vancouver] $

AFAIK, mi Python 2.7 venv habría sido "similar" a mi Python 3.5 venv, ayer, antes de mi instalación en ese (py35) venv.

lo siento, me refiero al scikit-learn conda-installed con el que anteriormente tenías problemas. Este es el pip instalado que pones sobre él para resolver tus problemas. Como parece que puede importar train_test_split aquí, es probable que python se esté extrayendo de pip. Tengo curiosidad por ver cómo sería si desinstalaras las cosas que instalaste a través de pip (volviendo así al estado en el que tenías el ImportError).

@ nelson-liu: sí / ¡uy! Me di cuenta de eso, inmediatamente después de publicar ese resultado. Actualizado, ahora, arriba. ;-)

El env de python3.5 en el que estabas dibujando todavía tiene scikit-learn from pip, lo que enturbia las aguas considerablemente. No estoy muy seguro de lo que está sucediendo en su máquina, especialmente porque ni siquiera puede importar scikit-learn en su entorno raíz; Creo que scikit-learn en py35 env se extrae de otro lugar en el que no quieres que sea. Verificaría su $ PATH y $ PYTHONPATH si desea evitar problemas futuros como este con otros paquetes, pero es bueno ver que está "funcionando" de todos modos.

Ahhh .. buenos puntos! ;-)

Actualización: ¡¡Oye, buena captura (inteligente, toda la gente que hay ;-) !! He tenido problemas con mi $ PYTHONPATH, que surgen de mi uso de PyCharm a principios de este año como mi IDE de Python. Para resolverlos, creé un my_script.pth en mi directorio raíz de PyCharm, que enumeraba mis PYTHONPATHS, con enlaces simbólicos a ese archivo * .pth en las carpetas de mi paquete Pyhton instalado conda; p.ej

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

[Lo sé: es complicado, pero tenía que hacerlo.] Para resumir, prefiero Geany como mi IDE / editor (multiplataforma), así que luego repliqué / actualicé esas rutas, p.

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

Mi archivo (Geany) my_scripts.pth ($ PYTHONPATH) apuntaba a

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

... cuál, creo, puede haber sido el problema?

¿Fue útil esta página
0 / 5 - 0 calificaciones