sklearn에서 가져 오는 중 ImportError : 이름 check_build를 가져올 수 없습니다.


117

sklearn에서 가져 오는 동안 다음 오류가 발생합니다.

>>> from sklearn import svm

Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
   from sklearn import svm
  File "C:\Python27\lib\site-packages\sklearn\__init__.py", line 16, in <module>
   from . import check_build
ImportError: cannot import name check_build

python 2.7, scipy-0.12.0b1 superpack, numpy-1.6.0 superpack, scikit-learn-0.11을 사용하고 있습니다. Windows 7 컴퓨터가 있습니다.

이 문제에 대한 몇 가지 답변을 확인했지만 그중 어느 것도이 오류를 해결할 수 없습니다.


scikit-learn을 현재 버전 (0.13)으로 업데이트 해보십시오.
adrianp 2013 년

지금은 다음과 같은 오류를 얻고있다
ayush을 Singhal이

ImportError : check_build 대신 __check_build 이름을 가져올 수 없음
ayush singhal

나는 scikit 0.13으로 업데이트했다
ayush singhal 2013 년

누군가 내 문제에 대한 해결책이 있습니까?
ayush singhal 2013 년

답변:


151

scipy를 설치 한 후 나를 위해 일했습니다.


25
또한 파이썬 셸을 다시 시작합니다. :)
Mannu

1
같은 폴더에 "sklearn"이라는 파일이 있는지 확인합니다. 다른 폴더에서 실행 해보십시오. 나를 위해 해결했습니다 (내 잘못). <ls | grep -i "sklearn">
Punnerud

@Mannu 예; 또한 jupyter 노트북의 경우 모든 jupyter 노트북을 다시 시작하지 않고 ipynb py-kernel이 작동했던 다시 시작 (종료하고 다시 클릭-열기)했습니다.
Abhimanu Kumar

scipy.stats또한 작동하지 않아 오류가 발생했습니다. 제 경우 multiprocessing.py에는 커널의 소켓 연결과 충돌하는 동일한 디렉토리에 파일이 있습니다. 파일 이름을 변경하여 수정되었습니다 multiprocessing_.py(선행 밑줄이 작동하지 않음).
pylang

47
>>> from sklearn import preprocessing, metrics, cross_validation

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    from sklearn import preprocessing, metrics, cross_validation
  File "D:\Python27\lib\site-packages\sklearn\__init__.py", line 31, in <module>
    from . import __check_build
ImportError: cannot import name __check_build
>>> ================================ RESTART ================================
>>> from sklearn import preprocessing, metrics, cross_validation
>>> 

따라서 간단히 셸을 다시 시작하십시오!


13
이와 같은 마법의 대답은 문제를 해결하지 못하기 때문에 실제로 도움이되지 않습니다. 다시 시작해도 문제가 해결되지 않으면 어떻게됩니까?
icedwater 2014 년

3
이것이 numpy 1.9 및 python 2.7에 대해 컴파일 된 scikit-learn 0.15.2에서 나에게 발생했다고 언급했습니다.
alexbw 2014 년

2
당신이 다시 시작하지 않으려면 del sys.modules['sklearn.__check_build']; import sklearn것 또한 일
자레드 포 시스

15

Python 3.6.5 64 비트 Windows 10 용 솔루션 :

  1. pip uninstall sklearn
  2. pip uninstall scikit-learn
  3. pip install sklearn

명령 줄을 다시 시작할 필요는 없지만 원하는 경우이 작업을 수행 할 수 있습니다. 이 버그를 고치는 데 하루가 걸렸습니다. 이 도움을 바랍니다.


1
기본적으로 최신 버전의 sklearn이 버그를 수정한다고 말하는 경우 업그레이드 할 sklearn의 버전 번호를 지정하는 것이 도움이 될 것입니다. 감사.
rwp

이것은 효과가 있었다. 감사합니다.
nk abram

8

설치 후 numpy, scipy, sklearn 여전히 오류가

해결책:

PathPython 및 PYTHONPATH환경 변수에 대한 시스템 변수 설정

시스템 변수 : C:\Python34경로에 추가 사용자 변수 : 새로 추가 : (이름) PYTHONPATH(값)C:\Python34\Lib\site-packages;


C : \ Python34 \ Lib \ site-packages \ sklearn으로 이동합니다. init .py 및 setup.py를 두 번 클릭 합니다 .
user3236650

5

일반적으로 이러한 종류의 오류가 발생하면 __init__.py파일을 열고 주변을 살펴 보는 것이 도움이됩니다. 디렉토리로 이동하여 첫 번째 단계로 C:\Python27\lib\site-packages\sklearn호출되는 하위 디렉토리가 있는지 확인합니다 __check_build. 내 컴퓨터 (작동중인 sklearn 설치, Mac OSX, Python 2.7.3 포함)에는 __init__.py,, setup.py관련 .pyc파일 및 바이너리가 _check_build.so있습니다.

__init__.py그 디렉토리를 둘러 보면 다음 단계로 가서 sklearn/__init__.pyimport 문을 주석으로 처리 할 수 ​​있습니다. 바이너리. 물론 이것은 귀하의 책임이며 (확실히) 해결 방법입니다. 빌드가 실패하면 곧 다른 더 큰 문제가 발생할 수 있습니다.


폴더에 _check_build.so가 없습니다. python 2.7 용으로이 파일을 얻으려면 어떻게해야합니까?
ayush singhal 2013 년

가져 오려는 줄을 주석 처리해 보셨습니까 sklearn/__init__.py?
BenDundee 2013 년

2
잠시 동안 가져 오기를 수행하는 줄을 주석 처리 할 수 ​​있습니다. 그런 다음 문제 추적기 github.com/scikit-learn/scikit-learn/issues 에서 버그처럼 보이는 문제를 열 ​​수 있습니까?
Andreas Mueller 2013 년

2
FWIW는 주석 처리 import에서이 __init__.py문제가 해결되지 않았지만 다른 오류를 노출 않았다 - 내 scipy이 성공하지 않았 설치합니다. 질문의 오류는 실제 문제를
Basic


3

python.org에서 새로운 64 비트 버전의 Python 3.4를 설치 한 후 SKLEARN을 가져 오는 데 문제가있었습니다.

고장난 것은 SCIPY 모듈이었고 "scipy를 가져 오려고 할 때 alos가 실패했습니다."

해결책은 scipy를 제거하고 pip3으로 다시 설치하는 것입니다.

C:\> pip uninstall scipy

[lots of reporting messages deleted]

Proceed (y/n)? y
  Successfully uninstalled scipy-1.0.0

C:\Users\>pip3 install scipy

Collecting scipy
  Downloading scipy-1.0.0-cp36-none-win_amd64.whl (30.8MB)
    100% |████████████████████████████████| 30.8MB 33kB/s
Requirement already satisfied: numpy>=1.8.2 in c:\users\johnmccurdy\appdata\loca
l\programs\python\python36\lib\site-packages (from scipy)
Installing collected packages: scipy
Successfully installed scipy-1.0.0

C:\Users>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
 on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>>
>>> import sklearn
>>>

2

Anaconda 2.7 64 비트를 사용하는 경우

conda upgrade scikit-learn

나를 위해 작동하는 파이썬 셸을 다시 시작하십시오.

두 번째로 동일한 문제에 직면하여 해결했습니다.

conda upgrade scikit-learn

나에게도 작동한다


1

다른 답변 중 어느 것도 나를 위해 일하지 않았습니다. 약간의 땜질 후 나는 sklearn을 제거했습니다.

pip uninstall sklearn

그런 다음 여기에서 sklearn 폴더를 제거했습니다. (시스템 및 Python 버전에 대한 경로 조정)

C:\Users\%USERNAME%\AppData\Roaming\Python\Python36\site-packages

그리고이 사이트에서 바퀴에서 설치 : 링크

다른 곳에 설치된 sklearn과의 버전 충돌로 인해 오류가 발생했을 수 있습니다.


1

저에게는 최신 Python 버전 (3.7)으로 새로운 Anaconda를 설치하여 기존 코드를 새로운 설정으로 업그레이드했습니다.

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

from sklearn.model_selection import GridSearchCV,cross_validate

1

sklearn을 제거한 후 다시 설치할 필요가 없습니다.

이 시도:

from sklearn.model_selection import train_test_split


-1

창에서 :

셸에서 sklearn을 삭제하려고했습니다. pip uninstall sklearn, 다시 설치했지만 작동하지 않습니다 ..

해결책:

1- open the cmd shell.
2- cd c:\pythonVERSION\scripts
3- pip uninstall sklearn
4- open in the explorer: C:\pythonVERSION\Lib\site-packages
5- look for the folders that contains sklearn and delete them ..
6- back to cmd: pip install sklearn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.