ImportError ในการนำเข้าจาก sklearn: ไม่สามารถอิมพอร์ตชื่อ 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

ตอนนี้ฉันได้รับข้อผิดพลาดต่อไปนี้
ayush singhal

ImportError: ไม่สามารถนำเข้าชื่อ __check_build แทน check_build
ayush singhal

ฉันอัปเดตเป็น scikit 0.13
ayush singhal

มีใครมีวิธีแก้ปัญหาของฉันบ้างไหม?
ayush singhal

คำตอบ:


151

ทำงานให้ฉันหลังจากติดตั้ง scipy


25
อีกทั้งการรีสตาร์ท python shell :)
Mannu

1
ตรวจสอบว่ามีไฟล์ชื่อ "sklearn" อยู่ในโฟลเดอร์เดียวกันหรือไม่ ลองเรียกใช้จากโฟลเดอร์อื่น แก้ไขให้ฉัน (ความผิดของฉัน) ค้นหาไฟล์ด้วย <ls | grep -i "sklearn">
Punnerud

@ มันนูครับ; สำหรับฉันในสมุดบันทึก jupyter เพียงแค่รีสตาร์ท (ปิดเครื่องแล้วคลิกเปิดอีกครั้ง) ซึ่ง ipynb py-kernel ทำงานได้โดยไม่ต้องรีสตาร์ทสมุดบันทึก jupyter ทั้งหมด
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

3
แค่บอกว่าสิ่งนี้เกิดขึ้นกับฉันด้วย scikit-learn 0.15.2 ที่คอมไพล์กับ numpy 1.9 และ python 2.7
alexbw

2
หากคุณไม่ต้องการรีสตาร์ทdel sys.modules['sklearn.__check_build']; import sklearnจะใช้งานได้เช่นกัน
Jared Forsyth

15

วิธีแก้ปัญหาของฉันสำหรับ Python 3.6.5 64-bit 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 ยังคงมีข้อผิดพลาด

สารละลาย:

การตั้งค่าPathตัวแปรระบบสำหรับ Python และ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__.pyและแสดงความคิดเห็นในคำสั่งนำเข้า - สิ่งที่ check_build ตรวจสอบว่าสิ่งต่างๆได้รับการรวบรวมอย่างถูกต้องดูเหมือนจะไม่ทำอะไรเลยนอกจากเรียกการคอมไพล์ล่วงหน้า ไบนารี่. แน่นอนว่านี่เป็นความเสี่ยงของคุณเองและ (เพื่อให้แน่ใจ) วิธีแก้ไข หากการสร้างของคุณล้มเหลวคุณจะพบปัญหาอื่นที่ใหญ่กว่าในไม่ช้า


ฉันไม่มี _check_build.so ในโฟลเดอร์ฉันจะทำอย่างไรเพื่อให้ได้ python 2.7
ayush singhal

คุณได้ลองแสดงความคิดเห็นในบรรทัดที่พยายามนำเข้าsklearn/__init__.pyหรือไม่
BenDundee

2
ในขณะนี้คุณสามารถแสดงความคิดเห็นในบรรทัดที่ทำการนำเข้าซึ่งจะช่วยให้คุณทำงานได้ จากนั้นโปรดเปิดปัญหาในเครื่องมือติดตามปัญหาgithub.com/scikit-learn/scikit-learn/issuesดูเหมือนว่าเป็นข้อบกพร่อง
Andreas Mueller

2
FWIW การแสดงความคิดเห็นimportในอิน__init__.pyไม่ได้ช่วยแก้ปัญหา แต่ทำให้เกิดข้อผิดพลาดอื่น - การติดตั้ง scipy ของฉันไม่สำเร็จ ข้อผิดพลาดในคำถามกำลังปิดบังปัญหาจริง
พื้นฐาน


3

ฉันมีปัญหาในการนำเข้า SKLEARN หลังจากติดตั้ง Python 3.4 เวอร์ชัน 64 บิตใหม่จาก python.org

ปรากฎว่าเป็นโมดูล SCIPY ที่เสียและ alos ล้มเหลวเมื่อฉันพยายาม "import scipy"

วิธีแก้ปัญหาคือถอนการติดตั้ง 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

และรีสตาร์ท python shell ซึ่งเหมาะกับฉัน

การแก้ไขครั้งที่สองเมื่อฉันประสบปัญหาเดียวกันและแก้ไขได้:

conda upgrade scikit-learn

ยังใช้ได้กับฉัน


1

ไม่มีคำตอบอื่นใดที่เหมาะกับฉัน หลังจากซ่อมแซมบางครั้งฉันก็ยกเลิกการติดตั้ง sklearn:

pip uninstall sklearn

จากนั้นฉันก็ลบโฟลเดอร์ sklearn ออกจากที่นี่: (ปรับเส้นทางไปยังระบบและเวอร์ชัน python ของคุณ)

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

และติดตั้งจากล้อจากเว็บไซต์นี้: ลิงค์

ข้อผิดพลาดอาจเกิดจากความขัดแย้งของเวอร์ชันกับ sklearn ที่ติดตั้งไว้ที่อื่น


1

สำหรับฉันฉันกำลังอัปเกรดโค้ดที่มีอยู่เป็นการตั้งค่าใหม่โดยการติดตั้ง Anaconda จากใหม่ด้วยเวอร์ชัน python ล่าสุด (3.7) สำหรับสิ่งนี้

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

ใน windows:

ฉันพยายามลบ sklearn จากเชลล์: pip ถอนการติดตั้ง 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.