Scikit-learn: после обновления: ImportError: нет модуля с именем model_selection на компьютере с Windows

Созданный на 13 янв. 2016  ·  17Комментарии  ·  Источник: scikit-learn/scikit-learn

после успешного обновления с помощью
обновление conda scikit-learn
на компьютере с Windows
из sklearn.model_selection import GridSearchCV
или
из sklearn.model_selection import train_test_split
дает
ImportError: нет модуля с именем model_selection
НО, scikit-learn начал работу после обновления только после
conda install -f scipy
на
http://stackoverflow.com/questions/31012216/updated-anaconda-why-arent-my-ipython-notebooks-working-anymore
кстати, этот пример работает нормально
http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html#example -text-document-classification-20newsgroups-py

Самый полезный комментарий

Модуль model_selection будет доступен только в следующем выпуске (0.18). Вам придется использовать старый модуль cross_validation !

Все 17 Комментарий

Модуль model_selection будет доступен только в следующем выпуске (0.18). Вам придется использовать старый модуль cross_validation !

Закрытие, так как это не ошибка.

хорошо, но не могли бы вы помочь получить рабочий код для файла упражнения_02_sentiment.py
из http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
как написано
Источник этого руководства можно найти в папке scikit-learn:
scikit-learn / doc / tutorial / text_analytics /

вы можете загрузить код со стабильного веб-сайта документации или проверить ветку 0.17.X в своем репо.

Этот вопрос был закрыт в январе 2016 г., но по-прежнему актуален (октябрь 2016 г.). Решение:

 ## [2016-Oct-19] Виртуальная среда Python 3.5
 (py35) [victoria @victoria ~] $ conda установить scikit-learn
 ...
 Будут УСТАНОВЛЕНЫ следующие НОВЫЕ пакеты:
 scikit-learn: 0.18-np111py35_0
 ...
 (py35) [victoria @victoria ~] список $ conda | grep scikit
 scikit-learn 0.18 np111py35_0 
 ## Python 3.5:
 >>> из sklearn.model_selection import train_test_split
 Отслеживание (последний вызов последний):
 Файл "", строка 1, в
 ImportError: нет модуля с именем 'sklearn.model_selection'
 ## оболочка:
 $ conda install -f scipy
 ...
 Будут УСТАНОВЛЕНЫ следующие НОВЫЕ пакеты:
 scipy: 0.18.1-np111py35_0
 ...
 ## Python: та же ошибка импорта !! Грррррр .......
 ## http://scikit-learn.org/stable/install.html
 "Если у вас уже есть рабочая установка numpy и scipy, самый простой способ установить scikit-learn - использовать pip

 pip install -U scikit-learn

 или conda:

 conda install scikit-learn "
 $ pip install -U scikit-learn
 Сбор scikit-learn
 Скачивание scikit_learn-0.18-cp35-cp35m-manylinux1_x86_64.whl (11,3 МБ)
 100% | ███████████████████████████████ | 11,3 МБ 162 КБ / с 
 Установка собранных пакетов: scikit-learn
 Найдена существующая установка: scikit-learn 0.17.1
 УСТАРЕНИЕ: Удаление установленного проекта distutils (scikit-learn) устарело и будет удалено в будущей версии. Это связано с тем, что при удалении проекта distutils он удаляется только частично.
 Удаление scikit-learn-0.17.1:
 Успешно удален scikit-learn-0.17.1
 Успешно установлен scikit-learn-0.18
 ## СЕЙЧАС можно успешно импортировать:
 (py35) [victoria @victoria ~] $ P
 [P: питон]
 Python 3.5.2 (по умолчанию, 28 июня 2016 г., 08:46:01) 
 [GCC 6.1.1 20160602] в Linux
 Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».
 >>> из sklearn.model_selection import train_test_split
 >>> 
 >>> [Ctrl-D / выход]
 (py35) [victoria @victoria ~] $ ## :-D

 QED

хм, похоже, у меня нет проблемы с @victoriastuart . Вы уверены, что активируете среду / имеете python в среде, в которой вы 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: спасибо за ваше предложение ... Да: я все время работал в своей виртуальной среде Python 3.5 (терминал; Python). Сейчас работаю, согласно моему ответу. :-)

@victoriastuart Я уверен, что это случилось с вами (см. большую красную рамку):
http://scikit-learn.org/dev/install.html#canopy -and-anaconda-for-all-supported-platform

Не пытайтесь обновить пакет с помощью conda, который вы установили с помощью pip. он не будет работать. Это ошибка setuptools.

@amueller - Вот в чем дело: я нахожусь в CONDA, установленном venv: вначале я почти уверен, что sklearn не было (я не использовал его ранее в этом venv, поэтому он не был ранее установлен , например, через pip; несмотря на это, я всегда предпочитаю conda над pip - во-первых, в моем venv - используя pip в крайнем случае):

 (py35) [victoria @victoria ~] $ conda установить scikit-learn
 Получение метаданных пакета .......
 Технические характеристики решающего пакета: ..........
 План пакета для установки в environment / home / victoria / anaconda3 / envs / py35:
 Будут загружены следующие пакеты:
 пакет | строить
 --------------------------- | -----------------
 numpy-1.11.2 | py35_0 6,1 МБ
 scipy-0.18.1 | np111py35_0 30,4 МБ
 scikit-learn-0.18 | np111py35_0 10,8 МБ
 theano-0.8.2 | py35_0 3,7 МБ
 -------------------------------------------------- ----------
 Всего: 51,0 МБ
 Будут УСТАНОВЛЕНЫ следующие НОВЫЕ пакеты:
 scikit-learn: 0.18-np111py35_0 
 Будут ОБНОВЛЕНЫ следующие пакеты:
 астропия: 1.1.2-np110py35_0 -> 1.2.1-np111py35_0 
 узкое место: 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 
 Продолжить ([y] / n)? 
 [... вырезать ...]

Примечание выше:

Будут УСТАНОВЛЕНЫ следующие НОВЫЕ пакеты: scikit-learn: 0.18-np111py35_0

Итак, вкратце: в соответствии со стандартными и рекомендованными sklearn (http://scikit-learn.org/stable/install.html) процедурами я устанавливаю sklearn - по-видимому, устанавливает ОК (без предупреждений), затем пытаюсь использовать его: сбой для импорта с эзотерическим сообщением об ошибке >> поиск в Google >> эта страница. Я ценю все мелочи об этом или этом (sklearn viz-a-viz NumPy или SciPy, ...), но главное в том, что как пользователю мне нужно было поработать над решением этой проблемы, которая, по-видимому, thread) для некоторых пользователей.

на самом деле проблема заключалась в том, что ответ stackoverflow ссылался на код, который еще не был опубликован в conda / pip (мы сделали это только 2 недели назад, поэтому, естественно, до тех пор код не работал с версиями, установленными conda / pip). Ваша проблема кажется немного не связанной, но я рад, что у вас все равно получилось.

@ nelson-liu: lol спасибо - и всем людям, вовлеченным в этот проект / разработку. Я знаю, что это безумно сложно, и что осложнения, подобные тем, о которых здесь говорится, - неизбежный факт. В любом случае моя установка sklearn, похоже, сейчас работает, как описано выше. [Я начну использовать его через несколько часов.] Надеюсь, приведенное выше обсуждение проинформирует / поможет другим. Опять же, большая признательность! :-)

@victoriastuart, я предполагаю, что у вас больше нет среды

>>> import sklearn
>>> sklearn.__version__

даст (я ожидаю, что это не то, что мы думаем, а именно не 0,18).
Я подозреваю, что это проблема с $ PYTHONPATH и, возможно, с отрисовкой scikit-learn из другого места; Мы надеемся, что исправление такой ошибки позволит избежать таких ошибок в других пакетах.

@ nelson-liu: конечно, без проблем! ;-)

 ----------------------------
 PYTHON 3.5 VENV (py35 | p3):
 ----------------------------
 [Виктория @ Виктория Ванкувер] $ p3
 [Anaconda Python 3.5 venv (источник активирует py35)]
 (py35) [victoria @victoria Vancouver] $ какой питон
 / дома / Виктория / анаконда3 / envs / py35 / бен / питон
 (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] $ pip list | egrep -wi 'scikit | numpy | scipy'
 numpy (1.11.1)
 scikit-изображение (0.12.3)
 scikit-learn (0,18)
 scipy (0.17.0)
 (py35) [victoria @victoria Vancouver] $ P
 [P: питон]
 Python 3.5.2 (по умолчанию, 28 июня 2016 г., 08:46:01)
 [GCC 6.1.1 20160602] в Linux
 Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».
 >>> из sklearn.model_selection import train_test_split
 >>> импорт sklearn
 >>> sklearn .__ version__
 '0,18'
 >>> выйти ()
 (py35) [victoria @victoria Vancouver] $ sd
 [Деактивировать Anaconda venv (деактивировать источник)]
 [Виктория @ Виктория Ванкувер] $
 ---------------------------------------------
 ХОЗЯЙСТВЕННАЯ (НЕВИРТУАЛЬНАЯ) СРЕДА (PYTHON 3.5):
 ---------------------------------------------
 [Виктория @ Виктория Ванкувер] $ какой питон
 / usr / bin / питон
 [Виктория @ Виктория Ванкувер] Список $ 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
 [Виктория @ Виктория Ванкувер] $ pip list | egrep -wi 'scikit | numpy | scipy'
 [Виктория @ Виктория Ванкувер] $ P
 [P: питон]
 Python 3.5.2 (по умолчанию, 28 июня 2016 г., 08:46:01)
 [GCC 6.1.1 20160602] в Linux
 Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».
 >>> sklearn .__ version__
 Отслеживание (последний вызов последний):
 Файл "", строка 1, в
 NameError: имя 'sklearn' не определено
 >>> импорт sklearn
 Отслеживание (последний вызов последний):
 Файл "", строка 1, в
 ImportError: нет модуля с именем 'sklearn'
 >>>
 ----------------------------
 Python 2.7 VENV (py27 | p2):
 ----------------------------
 [Виктория @ Виктория Ванкувер] $ p2
 [Anaconda Python 2.7 venv (источник активирован 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] $ pip list | egrep -wi 'scikit | numpy | scipy'
 numpy (1.11.1)
 scikit-изображение (0.12.3)
 scikit-learn (0,17.1)
 scipy (0.17.1)
 (py27) [victoria @victoria Vancouver] $ P
 [P: питон]
 Python 2.7.12 | Пользовательская версия Anaconda (64-разрядная версия) | (по умолчанию, 2 июля 2016 г., 17:42:40)
 [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] в linux2
 Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».
 Анаконда представлена ​​вам компанией Continuum Analytics.
 Пожалуйста, проверьте: http://continuum.io/thanks и https://anaconda.org
 >>> импорт sklearn
 >>> sklearn .__ version__
 '0,17,1'
 >>>
 (py27) [victoria @victoria Vancouver] $

AFAIK, мой Python 2.7 venv был бы «похож» на мой Python 3.5 venv вчера, до моей установки в этом (py35) venv.

извините, я имел в виду scikit-learn, установленный conda, с которым у вас раньше были проблемы. Это установленный пип, который вы кладете поверх него, чтобы решить свои проблемы. Поскольку кажется, что вы можете импортировать здесь train_test_split , вероятно, python использует pip. Мне любопытно посмотреть, что было бы, если бы вы удалили то, что вы установили через pip (таким образом, вернувшись к состоянию, в котором у вас была ошибка ImportError).

@ нельсон-лю: да / упс! Я понял это сразу после того, как опубликовал этот вывод. Обновлено, теперь, выше. ;-)

В python3.5 env, на котором вы рисовали, все еще есть scikit-learn от pip, что значительно мутит воду. Не слишком уверен, что происходит на вашем компьютере, особенно потому, что вы даже не можете импортировать scikit-learn в свой корневой env; Я думаю, что scikit-learn в py35 env извлекается из другого места, чего вы не хотите. Я бы проверил ваши $ PATH и $ PYTHONPATH, если вы хотите избежать подобных проблем в будущем с другими пакетами, но приятно видеть, что он все равно «работает».

Аааа .. хорошие моменты! ;-)

Обновление: Эй - хороший улов (умные, отличные люди; ;-) !! У меня были проблемы с моим $ PYTHONPATH, возникшие из-за того, что я использовал PyCharm ранее в этом году в качестве моей Python IDE. Чтобы решить эту проблему, я создал my_script.pth в моем корневом каталоге PyCharm, в котором перечислены мои PYTHONPATHS, с символическими ссылками на этот файл * .pth в моих папках пакетов Pyhton, установленных conda; например

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

[Я знаю: это сложно, но мне нужно было это сделать.] Короче говоря, я действительно предпочитаю Geany в качестве моей (многоплатформенной) IDE / редактора, поэтому позже я скопировал / обновил эти пути, например

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

Мой (Geany) файл my_scripts.pth ($ PYTHONPATH) указывал на

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

... в чем, я считаю, могла быть проблема?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги