Xgboost: ImportError : aucun module nommé numpy.distutils.core (installation d'Ubuntu xgboost)

Créé le 11 févr. 2016  ·  17Commentaires  ·  Source: dmlc/xgboost

Je suis un nouvel utilisateur d'Ubuntu et j'ai récemment téléchargé la version de bureau Ubuntu 14.04 avec Windows 10.

Mes configs PC sont : 4 Go de RAM, 64 bits

J'ai installé Anaconda à l'aide de la commande suivante à partir du terminal (après téléchargement depuis le site Web) :
bash Anaconda3-2.5.0-Linux-x86_64.sh

L'installation a réussi.

Maintenant, dans mon terminal ubuntu, j'ai suivi les étapes indiquées sur

  1. Installé un compilateur GNU C++ récent --> réussi
  2. git clone --recursive https://github.com/dmlc/xgboost cd xgboost; make -j4
    La construction a également été un succès et j'ai pu construire 'libxgboost.so'
  3. sudo apt-get install python-setuptools (Réussi)
  4. cd python-package
  5. sudo python setup.py install

La commande 5. renvoie une erreur après un certain nombre de lignes. L'erreur est la suivante :

'ImportError : aucun module nommé numpy.distutils.core'

Quelqu'un peut-il suggérer comment se débarrasser de cette erreur afin que je puisse installer xgboost ?

Le journal complet après l'étape 5. est le suivant :

_sidvash@sidvash-HP-Pavilion-g6-Notebook-PC:~/xgboost/python-package$ sudo python setup.py install
Installez libxgboost à partir de : ['/home/sidvash/xgboost/python-package/xgboost/../../lib/libxgboost.so']
installation en cours
exécuter bdist_egg
en cours d'exécution egg_info
écrire les exigences sur xgboost.egg-info/requires.txt
écrire xgboost.egg-info/PKG-INFO
écrire des noms de niveau supérieur dans xgboost.egg-info/top_level.txt
écrire des liens de dépendance dans xgboost.egg-info/dependency_links.txt
lecture du fichier manifeste 'xgboost.egg-info/SOURCES.txt'
lecture du modèle de manifeste 'MANIFEST.in'
avertissement : aucun fichier correspondant à '_' trouvé dans le répertoire 'xgboost/include'
avertissement : aucun fichier correspondant à '_' trouvé dans le répertoire 'xgboost/src'
avertissement : aucun fichier précédemment inclus correspondant à « xgboost/build/_ » n'a été trouvé dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à 'xgboost/_.o' trouvé n'importe où dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à '_.pyo' trouvé n'importe où dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à '_.pyc' n'a été trouvé dans la distribution
écriture du fichier manifeste 'xgboost.egg-info/SOURCES.txt'
installer le code de la bibliothèque sur build/bdist.linux-x86_64/egg
exécuter install_lib
exécuter build_py
création de build/bdist.linux-x86_64/egg
création de build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/libpath.py -> build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/VERSION -> build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/build-python.sh -> build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/__init__.py -> build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/training.py -> build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/compat.py -> build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/core.py -> build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/sklearn.py -> build/bdist.linux-x86_64/egg/xgboost
copier build/lib.linux-x86_64-2.7/xgboost/plotting.py -> build/bdist.linux-x86_64/egg/xgboost
compilation d'octets build/bdist.linux-x86_64/egg/xgboost/libpath.py vers libpath.pyc
compilation d'octets build/bdist.linux-x86_64/egg/xgboost/ init .py pour init .pyc
compilation d'octets build/bdist.linux-x86_64/egg/xgboost/training.py vers training.pyc
compilation d'octets build/bdist.linux-x86_64/egg/xgboost/compat.py vers compat.pyc
compilation d'octets build/bdist.linux-x86_64/egg/xgboost/core.py vers core.pyc
compilation d'octets build/bdist.linux-x86_64/egg/xgboost/sklearn.py vers sklearn.pyc
compilation d'octets build/bdist.linux-x86_64/egg/xgboost/plotting.py vers plotting.pyc
installer les données du package sur build/bdist.linux-x86_64/egg
exécuter install_data
copier /home/sidvash/xgboost/python-package/xgboost/../../lib/libxgboost.so -> build/bdist.linux-x86_64/egg/xgboost
création de build/bdist.linux-x86_64/egg/EGG-INFO
copier xgboost.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copier xgboost.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copier xgboost.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copier xgboost.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO
copier xgboost.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copier xgboost.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
créer 'dist/xgboost-0.4-py2.7.egg' et y ajouter 'build/bdist.linux-x86_64/egg'
suppression de 'build/bdist.linux-x86_64/egg' (et tout ce qui se trouve en dessous)
Traitement de xgboost-0.4-py2.7.egg
suppression de '/usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg' (et tout ce qui se trouve en dessous)
création de /usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg
Extraction de xgboost-0.4-py2.7.egg dans /usr/local/lib/python2.7/dist-packages
xgboost 0.4 est déjà la version active dans easy-install.pth

Installé /usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg
Traitement des dépendances pour xgboost==0.4
Recherche scipy
Lecture https://pypi.python.org/simple/scipy/
Meilleure correspondance : scipy 0.17.0
Téléchargement https://pypi.python.org/packages/source/s/scipy/scipy-0.17.0.zip#md5 =28a4fe29e980804db162524f10873211
Traitement scipy-0.17.0.zip
Écriture de /tmp/easy_install-2YPTnH/scipy-0.17.0/setup.cfg
Exécuter scipy-0.17.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-2YPTnH/scipy-0.17.0/egg-dist-tmp-z4NE5c
Traceback (appel le plus récent en dernier) :
Fichier "setup.py", ligne 39, dans
url='https://github.com/dmlc/xgboost')
Fichier "/usr/lib/python2.7/distutils/core.py", ligne 151, dans setup
dist.run_commands()
Fichier "/usr/lib/python2.7/distutils/dist.py", ligne 953, dans run_commands
self.run_command(cmd)
Fichier "/usr/lib/python2.7/distutils/dist.py", ligne 972, dans run_command
cmd_obj.run()
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/install.py", ligne 73, en cours d'exécution
self.do_egg_install()
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/install.py", ligne 96, dans do_egg_install
cmd.run()
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 381, en cours d'exécution
self.easy_install(spec, pas self.no_deps)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 597, dans easy_install
return self.install_item(None, spec, tmpdir, deps, True)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 648, dans install_item
self.process_distribution(spec, dist, deps)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 694, dans process_distribution
[exigence], self.local_index, self.easy_install
Fichier "/usr/lib/python2.7/dist-packages/pkg_resources.py", ligne 620, en résolution
dist = best[req.key] = env.best_match(req, ws, installateur)
Fichier "/usr/lib/python2.7/dist-packages/pkg_resources.py", ligne 858, dans best_match
return self.obtain(req, installer) # essayez de télécharger/installer
Fichier "/usr/lib/python2.7/dist-packages/pkg_resources.py", ligne 870, dans get
retourner l'installateur (exigence)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 616, dans easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 646, dans install_item
dists = self.install_eggs(spec, download, tmpdir)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 834, dans install_eggs
return self.build_and_install(setup_script, setup_base)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 1040, dans build_and_install
self.run_setup(setup_script, setup_base, args)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", ligne 1025, dans run_setup
run_setup(setup_script, arguments)
Fichier "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", ligne 50, dans run_setup
lambda : execfile(
Fichier "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", ligne 100, en cours d'exécution
retour func()
Fichier "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", ligne 52, dans
{' file ':setup_script, ' name ':' main '}
Fichier "setup.py", ligne 265, dans

Fichier "setup.py", ligne 253, dans setup_package

ImportError : aucun module nommé numpy.distutils`_

Commentaire le plus utile

Si 'pip install xgboost' ne fonctionne pas pour vous, ce problème peut également être résolu en faisant

sudo -s
python setup.py install 

Le problème est que 'sudo python' utilisera le Python du système au lieu du python d'anacoda.

Plus de détails : http://stackoverflow.com/questions/30626160/anaconda-python-not-available-from-sudo

Tous les 17 commentaires

Êtes-vous sûr d'utiliser le bon python?

Essayer

which python

ou

readlink -f `which python`

pour déterminer si vous utilisez Anaconda ou non.

Salut,

Merci d'avoir commenté.

quel python renvoie ce qui suit :
/home/sidvash/anaconda3/bin/python

@brickerino : Je viens de mettre à jour le journal complet après l'étape 5 de la description. S'il vous plaît voir si cela aide.

Le message indique que vous n'avez pas numpy, veuillez vérifier si votre PYTHON_PATH pointe vers le chemin du package anaconda. Assurez-vous également que conda install numpy si ce n'est pas encore fait

@phunterlau :
J'ai vérifié le python_path à l'aide de la commande suivante :
python -c "import sys; print(sys.path)"

Il renvoie :
['', '/home/sidvash/anaconda3/lib/python35.zip', '/home/sidvash/anaconda3/lib/python3.5', '/home/sidvash/anaconda3/lib/python3.5/plat- linux', '/home/sidvash/anaconda3/lib/python3.5/lib-dynload', '/home/sidvash/anaconda3/lib/python3.5/site-packages', '/home/sidvash/anaconda3/lib /python3.5/site-packages/Sphinx-1.3.5-py3.5.egg', '/home/sidvash/anaconda3/lib/python3.5/site-packages/cryptography-1.0.2-py3.5- linux-x86_64.egg', '/home/sidvash/anaconda3/lib/python3.5/site-packages/setuptools-19.6.2-py3.5.egg']

Cela m'a l'air bien. Cependant, je vois dans mon premier post que le chemin "/usr/lib/python2.7/dist-packages" apparaît dans un certain nombre de lignes dans l'erreur et je ne sais pas si cela devrait également être là dans le chemin python ou ne pas. Pourriez-vous suggérer quelque chose ?

J'ai également exécuté "conda install numpy" qui a renvoyé ce qui suit :

Utilisation du site API d'Anaconda Cloud https://api.anaconda.org
Récupération des métadonnées du package : ....
Résoudre les spécifications du package : ......................
Plan de package pour l'installation dans l'environnement /home/sidvash/anaconda3 :

Les packages suivants seront téléchargés :

| forfait | construire |
| --- | --- |
| roue-0.29.0 | py35_0 82 Ko |

Les packages suivants seront mis à jour :

wheel: 0.26.0-py35_1 --> 0.29.0-py35_0

Continuer ([o]/n) ? oui

Récupération des paquets...
wheel-0.29.0-p 100% |################################| Heure : 0:00:01 50,38 ko/s
Extraction des paquets...
[ COMPLET ]|############################################## #####| 100%
Dissociation des packages...
[ COMPLET ]|############################################## #####| 100%
Lier des packages...
[ COMPLET ]|############################################## #####| 100

J'ai essayé l'installation de sudo python setup.py après l'installation mais pas de chance, toujours la même erreur

eh bien, vous avez python du système et anaconda, et python 2 3 tous les deux, et vous avez l'outil de configuration du système, donc certains env ont foiré. je peux suggérer de créer un virtualenv et d'installer numpy scikit-learn et xgboost

@phunterlau : Merci pour votre commentaire. J'apprécie vraiment votre aide.

Je suis novice sur Ubuntu et je ne veux pas gâcher davantage les choses.

Pourriez-vous s'il vous plaît me dire un processus étape par étape pour le faire?

Je sais que je peux créer un virtualenv en utilisant ce qui suit : (l'installation de virtualenv n'est pas recommandée avec conda)
conda create -n <env_name> python=3.5 anaconda

Et puis comment dois-je installer numpy scikit-learn et xgboost sur cet env ?

Je peux activer l'env en :
source activate <env_name>

Dois-je alors procéder à d'autres installations comme suit :
pip install numpy
pip install scikit-learn

Et pour xgboost, je devrais répéter toutes ces étapes ?
git clone --recursive https://github.com/dmlc/xgboost cd xgboost; make -j4
cd python-package; sudo python setup.py install

Bon, j'ai fait ce qui suit mais j'obtiens toujours exactement la même erreur:
conda create -n snakes python=3.5 numpy pandas scikit-learn
sidvash:~$ source activate snakes
discarding /home/sidvash/anaconda3/bin from PATH
prepending /home/sidvash/anaconda3/envs/snakes/bin to PATH

cd xgboost/python-package
sudo python setup.py install

Pour une raison quelconque, l'installation continue de faire référence à "/usr/lib/python2.7/dist-packages"

Je l'ai réglé en suivant les étapes ci-dessous:

  1. Supprimez le répertoire actuel nommé "xgboost" que j'ai précédemment téléchargé à partir de github.
  2. pip installer xgboost

Cela a fonctionné comme un charme. Je n'ai pas essayé cela plus tôt car il a été mentionné sur le site github que vous devriez installer à partir de github pour la dernière version.

J'ai posté cette question sur le débordement de la pile et quelqu'un l'a suggéré. Voici le lien:
http://stackoverflow.com/questions/35332300/importerror-no-module-named-numpy-distutils-core-ubuntu-xgboost-installation/35493714#35493714

Quoi qu'il en soit, merci beaucoup pour votre aide les gars : @brickerino @phunterlau

Heureux que pip install xgboost aidé :-)

Si 'pip install xgboost' ne fonctionne pas pour vous, ce problème peut également être résolu en faisant

sudo -s
python setup.py install 

Le problème est que 'sudo python' utilisera le Python du système au lieu du python d'anacoda.

Plus de détails : http://stackoverflow.com/questions/30626160/anaconda-python-not-available-from-sudo

@ knguyen0105 Bien a fonctionné pour moi .... merci mec .... :)

@knguyen0105 donnant une erreur
"/home/ashish/anaconda2/bin/../lib/libgomp.so.1 : version 'GOMP_4.0' introuvable (requis par /home/ashish/anaconda2/lib/python2.7/site-packages/xgboost /./lib/libxgboost.so)"

quelqu'un peut-il aider?

qu'est-ce que PYTHON_PATH suppose de retourner ?

@knguyen0105 Cela a très bien fonctionné pour moi ! Merci!

Merci knguyen0105, Résumé pour Ubuntu, anaconda 2:

  1. http://xgboost.readthedocs.io/en/latest/build.html
  2. sudo -s
    python setup.py installer
    à la place de
    cd python-paquet; sudo python setup.py installer

@knguyen0105, vraiment merci beaucoup

Cette page vous a été utile?
0 / 5 - 0 notes