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スーパーパック、numpy-1.6.0スーパーパック、scikit-learn-0.11を使用しています。

私はこの問題のいくつかの回答を確認しましたが、どれもこのエラーを回避する方法を提供しません。


scikit-learnを現在のバージョン(0.13)に更新してみてください。
adrianp 2013年

今、私は次のエラーを
受け取り

ImportError:check_buildの代わりに名前__check_buildをインポートできません
ayush singhal

私はscikit 0.13に更新しました
ayush singhal 2013年

誰かが私の問題の解決策を持っていますか?
ayush singhal 2013年

回答:


151

scipyをインストールした後、私のために働いた。


25
さらに、Pythonシェルを再起動します。:)
Mannu

1
同じフォルダに「sklearn」というファイルがあるかどうかを確認します。別のフォルダから実行してみてください。私のためにそれを解決しました(私のせい)。<ls |でファイルを見つける grep -i "sklearn">
プンネルード

@Mannuはい; また、jupyterノートブックを使用している場合は、すべてのjupyterノートブックを再起動せずに、ipynb py-kernelが機能することを再起動(シャットダウンして再度クリックして開く)します。
Abhimanu Kumar

scipy.statsまた、機能せず、エラーも発生しました。私の場合、multiprocessing.py同じディレクトリでファイルが呼び出されていて、カーネルのソケット接続となんらかの形で競合していました。ファイルの名前を変更して修正しましたmultiprocessing_.py(先頭のアンダースコアが機能しませんでした)。
pylang 2019年

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も動作します
Jared Forsyth

15

Python 3.6.5 64ビットWindows 10の私のソリューション:

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

コマンドラインを再起動する必要はありませんが、必要に応じて再起動できます。このバグを修正するのに1日かかりました。この助けを願っています。


1
基本的に、sklearnの最新バージョンでバグが修正されると言っている場合は、アップグレードするsklearnのバージョン番号を示すと役立ちます。ありがとう。
rwp

これはうまくいきました。ありがとうございました。
nk abram

8

インストールした後numpyscipysklearn まだエラーが発生しました

解決:

PathPythonのシステム変数とPYTHONPATH環境変数の設定

システム変数:C:\Python34パスに追加ユーザー変数:新規追加:(名前)PYTHONPATH(値)C:\Python34\Lib\site-packages;


Cに移動:\ Python34 \ Libの\のsite-packages \ sklearnダブルクリックのinitの.pyとsetup.pyを。
user3236650 2016年

5

通常、これらの種類のエラーが発生した場合、__init__.pyファイルを開いて中身を探すと役立ちます。ディレクトリに移動し、最初のステップとしてC:\Python27\lib\site-packages\sklearn呼び出されるサブディレクトリがあることを確認し__check_buildます。(作業sklearnのインストール、マックOSX、Pythonの2.7.3と)私のマシン上で私が持っている__init__.pysetup.py、それに関連する.pycファイル、およびバイナリ_check_build.so

__init__.pyそのディレクトリ内をぶらぶらして、私が取る次のステップはsklearn/__init__.py、インポートステートメントに移動してコメントアウトすることです--- check_buildは、正しくコンパイルされたことをチェックするだけで、何もしないように見えますが、プリコンパイル済みバイナリ。もちろん、これはあなた自身の責任であり、(確かに)回避策です。ビルドが失敗した場合、すぐに他のより大きな問題に遭遇するでしょう。


私はフォルダに_check_build.soがありません。python2.7でこれを取得するにはどうすればよいですか
ayush singhal

インポートしようとする行をコメント化してみましたsklearn/__init__.pyか?
BenDundee 2013年

2
当面は、インポートを実行する行をコメントアウトして、実行する必要があります。次に、課題トラッカーgithub.com/scikit-learn/scikit-learn/issuesで課題を開いてバグのように見えますか?
Andreas Mueller

2
FWIWはコメントアウトimportでは、__init__.py問題を解決しませんでしたが、別のエラーを公開しなかった-私のscipyのダウンロードが成功していなかったインストールします。質問のエラーは本当の問題
基本的な

3

Windowsでも同じ問題が発生しました。この回答で提案されているように、http: //www.lfd.uci.edu/~gohlke/pythonlibs/#numpyからNumpy + MKLをインストールすることで解決しました(依存する他のパッケージの前にnumpy + mklをインストールすることをお勧めします)。


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

そして、Pythonシェルを再起動します。

同じ問題に直面して解決したときの2番目の編集:

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

Windowsの場合:

私はシェルから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.