2014-03-30 3 views
21

Использование Python 2.7 с пакетом scikit-learn 0.14. Он хорошо работает на некоторых примерах из гильдии пользователей, ожидающих линейные модели.ImportError: невозможно импортировать имя inplace_column_scale

Traceback (most recent call last): 
File "E:\P\plot_ols.py", line 28, in <module> 
from sklearn import datasets, linear_model 
File "C:\Python27\lib\site-packages\sklearn\linear_model\__init__.py", line 12, in <module> 
from .base import LinearRegression 
File "C:\Python27\lib\site-packages\sklearn\linear_model\base.py", line 29, in <module> 
from ..utils.sparsefuncs import mean_variance_axis0, inplace_column_scale 
ImportError: cannot import name inplace_column_scale 

Спасибо ~

+1

я получаю то же самое с scikit-узнать-0.15 на Python 2.7.2 - вы нашли ответ на этот вопрос? –

ответ

29

я был в состоянии исправить это, перейдя в мою папку питона и удаление файла:

python27\Lib\site-packages\sklearn\utils\sparsefuncs.pyd 

Я думаю, что проблема была:

  1. Старая версия scikit-learn реализована sparsefuncs как окно DLL
  2. Текущая версия реализует его как питон файл
  3. Если вы устанавливаете новую версию поверх старой версии он не удаляет старую DLL
  4. При попытке импортировать, Python использует PYD в предпочтении к р реализация
  5. Но старая реализация не включает эту функцию

Это говорит о том, что там могут быть большие проблемы, связанные с установкой новой версии, и это может быть мудрым, чтобы удалить весь каталог sklearn перед установкой новой версии.

+0

У меня есть .pyc-файл, а не .pyd и не могу исправить. –

18

Я столкнулся с той же проблемой в Mac Os.

Я решил его удалить файл вручную:

rm /usr/local/lib/python2.7/site-packages/sklearn/utils/sparsefuncs.so

+3

в ubuntu, удалив /usr/local/lib/python2.7/dist-packages/sklearn/utils/sparsefuncs.so, работал для меня. – user1269942

+2

в Ubuntu/Anaconda, удалив файл 'anaconda/lib/python2.7/site-packages/sklearn/utils/sparsefuncs.so' для меня. – Phani

4

Удаление scikit-learn и переустановка это был единственный вариант, который работал для меня:

pip uninstall scikit-learn 
pip install scikit-learn 
0

У меня была такая же проблема. Я первоначально установил scikit-learn по:

sudo apt-get install python-sklearn 

Когда ни одна из других решений, размещенных здесь работал, я решил удалить свою версию scikit-learn и установите его:

pip2 install --user --install-option="--prefix=" -U scikit-learn 

Используется pip2, потому что у меня есть две версии из python, поэтому я использую scikit-learn в Python. 2.7

0

Относительно примечания это было опубликовано как ошибка the official Github page, а также некоторые дополнительные решения, в основном предлагая те же решения, что и выше. Короче говоря: запустите make clean, чтобы избавиться от файла .so.

0

Я решить эту проблему:

pip uninstall scikit-learn 

и не забудьте ю папку 'sklearn' в питоне

rm -rf /path/Python-2.7.5/lib/python2.7/site-packages/sklearn/ 

затем повторно установить пакет 'Сайт-пакеты':

pip install scikit-learn 
0

такая же проблема случилась с не может импортировать _safe_split, посмотрите

http://stackoverflow.com/questions/41024001/importerror-cannot-import-name-safe-split

https://github.com/scikit-learn/scikit-learn/issues/7582

EDIT: проверить комментарий Андреаса Мюллера

Смежные вопросы