ImportError lors de l'importation depuis sklearn: impossible d'importer le nom check_build

117

J'obtiens l'erreur suivante en essayant d'importer depuis 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

J'utilise python 2.7, scipy-0.12.0b1 superpack, numpy-1.6.0 superpack, scikit-learn-0.11 J'ai une machine Windows 7

J'ai vérifié plusieurs réponses à ce problème, mais aucune d'elles ne permet de sortir de cette erreur.

ayush singhal
la source
Essayez de mettre à jour scikit-learn vers la version actuelle (0.13).
adrianp
maintenant, je reçois l'erreur suivante
ayush singhal
ImportError: impossible d'importer le nom __check_build au lieu de check_build
ayush singhal
J'ai mis à jour vers scikit 0.13
ayush singhal
Quelqu'un a-t-il une solution à mon problème?
ayush singhal

Réponses:

151

A travaillé pour moi après l'installation de scipy.

Sawan
la source
25
De plus, le redémarrage du shell python. :)
Mannu
1
Vérifiez s'il existe un fichier appelé "sklearn" dans le même dossier. Essayez d'exécuter à partir d'un autre dossier. Résolu pour moi (ma faute). Rechercher un fichier avec <ls | grep -i "sklearn">
Punnerud
@Mannu Oui; Aussi pour moi sur le notebook jupyter, il suffit de redémarrer (arrêter et cliquer à nouveau) que ipynb py-kernel fonctionnait sans redémarrer tout le notebook jupyter.
Abhimanu Kumar
scipy.statségalement n'a pas fonctionné a également soulevé une erreur. Dans mon cas, j'avais un fichier appelé multiprocessing.pydans le même répertoire qui était en quelque sorte en conflit avec la connexion socket du noyau. Correction en renommant le fichier multiprocessing_.py(le trait de soulignement principal ne fonctionnait pas).
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
>>> 

Alors, essayez simplement de redémarrer le shell!

Gurupad Hegde
la source
13
Des réponses magiques comme celle-ci ne sont pas vraiment utiles car elles ne résolvent pas le problème. Et si un redémarrage ne résout pas le problème?
icedwater
3
En mentionnant simplement que cela m'est arrivé avec scikit-learn 0.15.2 compilé avec numpy 1.9 et python 2.7.
alexbw
2
Si vous ne voulez pas redémarrer, del sys.modules['sklearn.__check_build']; import sklearnfonctionnera également
Jared Forsyth
15

Ma solution pour Python 3.6.5 64 bits Windows 10:

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

Pas besoin de redémarrer la ligne de commande mais vous pouvez le faire si vous le souhaitez. Il m'a fallu un jour pour corriger ce bug. J'espère que cette aide.

Loitd
la source
1
Si vous dites essentiellement que la dernière version de sklearn corrige le bogue, il serait utile d'indiquer les numéros de version de sklearn vers lesquels vous mettez à niveau. Merci.
rwp
Cela a fonctionné. Je vous remercie.
nk abram
8

Après l' installation numpy, scipy, sklearn a encore erreur

Solution:

Configuration de la Pathvariable système pour Python et la PYTHONPATHvariable d'environnement

Variables système: ajouter C:\Python34dans le chemin Variables utilisateur: ajouter nouveau: (nom) PYTHONPATH(valeur)C:\Python34\Lib\site-packages;

user3236650
la source
allez dans C: \ Python34 \ Lib \ site-packages \ sklearn Double-cliquez sur init .py et setup.py.
user3236650
5

Habituellement, lorsque j'obtiens ce genre d'erreurs, ouvrir le __init__.pyfichier et fouiller aide. Accédez au répertoire C:\Python27\lib\site-packages\sklearnet assurez-vous qu'il existe un sous-répertoire appelé __check_builddans un premier temps. Sur ma machine (avec une installation sklearn de travail, Mac OS X, Python 2.7.3) Je __init__.py, setup.py, leurs associés .pycfichiers, et un binaire _check_build.so.

En poussant __init__.pydans ce répertoire, la prochaine étape que je prendrais est d'aller sklearn/__init__.pyet de commenter l'instruction d'importation --- le truc check_build vérifie simplement que les choses ont été compilées correctement, il ne semble pas faire autre chose que d'appeler un précompilé binaire. C'est, bien sûr, à vos risques et périls, et (bien sûr) un contournement. Si votre build échoue, vous rencontrerez probablement bientôt d'autres problèmes plus importants.

BenDundee
la source
Je n'ai pas _check_build.so dans le dossier, que puis-je faire pour obtenir ceci pour python 2.7
ayush singhal
Avez-vous essayé de commenter la ligne qui tente de l'importer sklearn/__init__.py?
BenDundee
2
Pour le moment, vous pouvez commenter la ligne qui effectue l'importation, qui devrait vous permettre de démarrer. Pouvez-vous alors s'il vous plaît ouvrir un problème dans le suivi des problèmes github.com/scikit-learn/scikit-learn/issues ressemble à un bogue.
Andreas Mueller
2
FWIW Commenter le importin __init__.pyn'a pas résolu le problème mais a révélé une erreur différente - mon installation scipy n'avait pas réussi. L'erreur dans la question masquait le vrai problème
Basic
3

J'ai eu le même problème sous Windows. Résolu le problème en installant Numpy + MKL à partir de http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy (là, il est recommandé d'installer numpy + mkl avant les autres packages qui en dépendent) comme suggéré par cette réponse .

utilisateur2314737
la source
3

J'ai eu des problèmes pour importer SKLEARN après avoir installé une nouvelle version 64 bits de Python 3.4 à partir de python.org.

Il s'avère que c'était le module SCIPY qui était cassé, et a également échoué quand j'ai essayé "d'importer scipy".

La solution consistait à désinstaller scipy et à le réinstaller avec 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
>>>
John McCurdy
la source
2

Si vous utilisez Anaconda 2.7 64 bits, essayez

conda upgrade scikit-learn

et redémarrez le shell python, cela fonctionne pour moi.

Deuxième modification lorsque j'ai rencontré le même problème et que je l'ai résolu:

conda upgrade scikit-learn

fonctionne aussi pour moi

Statham
la source
1

Aucune des autres réponses n'a fonctionné pour moi. Après quelques bricolages, j'ai désinstallé sklearn:

pip uninstall sklearn

Ensuite, j'ai supprimé le dossier sklearn d'ici: (ajustez le chemin vers votre système et la version python)

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

Et l'a installé à partir de la roue de ce site: lien

L'erreur était probablement due à un conflit de version avec sklearn installé ailleurs.

chross
la source
1

Pour moi, je mettais à niveau le code existant dans une nouvelle configuration en installant Anaconda à partir de la dernière version de python (3.7) Pour cela,

from sklearn import cross_validation, 
from sklearn.grid_search import GridSearchCV

à

from sklearn.model_selection import GridSearchCV,cross_validate
Siddaram H
la source
1

pas besoin de désinstaller puis de réinstaller sklearn

essaye ça:

from sklearn.model_selection import train_test_split
Cathrine
la source
0

J'ai eu le même problème en réinstallant anaconda a résolu le problème pour moi

Mubashar Nazar
la source
-1

Dans Windows:

J'ai essayé de supprimer sklearn du shell: pip désinstaller sklearn, et le réinstaller mais ne fonctionne pas.

la solution:

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
Ghanem
la source