Xgboost: ImportError: Kein Modul namens numpy.distutils.core (Ubuntu xgboost-Installation)

Erstellt am 11. Feb. 2016  ·  17Kommentare  ·  Quelle: dmlc/xgboost

Ich bin ein neuer Benutzer von Ubuntu und habe kürzlich die Desktop-Version Ubuntu 14.04 neben Windows 10 heruntergeladen.

Meine PC-Konfigurationen sind: 4 GB RAM, 64 Bit

Ich habe Anaconda mit dem folgenden Befehl vom Terminal aus installiert (nach dem Herunterladen von der Website):
bash Anaconda3-2.5.0-Linux-x86_64.sh

Die Installation war erfolgreich.

Jetzt habe ich in meinem Ubuntu-Terminal die Schritte befolgt, wie auf http://xgboost.readthedocs.org/en/latest/build.html#building -on-ubuntu-debian . beschrieben

  1. Einen aktuellen GNU C++ Compiler installiert -->erfolgreich
  2. git clone --recursive https://github.com/dmlc/xgboost cd xgboost; make -j4
    Das Bauen war auch erfolgreich und ich konnte 'libxgboost.so' bauen.
  3. sudo apt-get install python-setuptools (Erfolgreich)
  4. cd python-package
  5. sudo python setup.py install

Der Befehl 5. gibt nach mehreren Zeilen einen Fehler zurück. Der Fehler ist wie folgt:

'ImportError: Kein Modul namens numpy.distutils.core'

Kann jemand vorschlagen, wie man diesen Fehler loswird, damit ich xgboost installieren kann?

Das vollständige Protokoll nach Schritt 5. lautet wie folgt:

_sidvash@sidvash-HP-Pavilion-g6-Notebook-PC:~/xgboost/python-package$ sudo python setup.py install
Installiere libxgboost von: ['/home/sidvash/xgboost/python-package/xgboost/../../lib/libxgboost.so']
laufende Installation
bdist_egg . laufen lassen
läuft egg_info
Anforderungen an xgboost.egg-info/requires.txt schreiben
xgboost.egg-info/PKG-INFO schreiben
Schreiben von Top-Level-Namen in xgboost.egg-info/top_level.txt
Dependency_links in xgboost.egg-info/dependency_links.txt schreiben
Manifestdatei 'xgboost.egg-info/SOURCES.txt' lesen
Manifest-Vorlage 'MANIFEST.in' lesen
Warnung: Keine Dateien gefunden, die mit '_' im Verzeichnis 'xgboost/include' übereinstimmen
Warnung: Keine Dateien gefunden, die mit '_' im Verzeichnis 'xgboost/src' übereinstimmen
Warnung: nirgendwo in der Distribution wurden zuvor enthaltene Dateien gefunden, die mit 'xgboost/build/_' übereinstimmen
Warnung: nirgendwo in der Distribution wurden zuvor enthaltene Dateien gefunden, die mit 'xgboost/_.o' übereinstimmen
Warnung: nirgendwo in der Distribution wurden zuvor enthaltene Dateien gefunden, die mit '_.pyo' übereinstimmen
Warnung: nirgendwo in der Distribution wurden zuvor enthaltene Dateien gefunden, die mit '_.pyc' übereinstimmen
Manifestdatei 'xgboost.egg-info/SOURCES.txt' schreiben
Installieren des Bibliothekscodes in build/bdist.linux-x86_64/egg
Ausführen von install_lib
Ausführen von build_py
build/bdist.linux-x86_64/egg erstellen
build/bdist.linux-x86_64/egg/xgboost erstellen
Kopieren von build/lib.linux-x86_64-2.7/xgboost/libpath.py -> build/bdist.linux-x86_64/egg/xgboost
Kopieren von build/lib.linux-x86_64-2.7/xgboost/VERSION -> build/bdist.linux-x86_64/egg/xgboost
Kopieren von build/lib.linux-x86_64-2.7/xgboost/build-python.sh -> build/bdist.linux-x86_64/egg/xgboost
Kopieren von build/lib.linux-x86_64-2.7/xgboost/__init__.py -> build/bdist.linux-x86_64/egg/xgboost
Kopieren von build/lib.linux-x86_64-2.7/xgboost/training.py -> build/bdist.linux-x86_64/egg/xgboost
Kopieren von build/lib.linux-x86_64-2.7/xgboost/compat.py -> build/bdist.linux-x86_64/egg/xgboost
Kopieren von build/lib.linux-x86_64-2.7/xgboost/core.py -> build/bdist.linux-x86_64/egg/xgboost
Kopieren von build/lib.linux-x86_64-2.7/xgboost/sklearn.py -> build/bdist.linux-x86_64/egg/xgboost
Kopieren von build/lib.linux-x86_64-2.7/xgboost/plotting.py -> build/bdist.linux-x86_64/egg/xgboost
Byte-Kompilierung build/bdist.linux-x86_64/egg/xgboost/libpath.py zu libpath.pyc
Byte-Kompilierung build/bdist.linux-x86_64/egg/xgboost/ init .py zu init .pyc
Byte-Kompilierung build/bdist.linux-x86_64/egg/xgboost/training.py zu training.pyc
Byte-Kompilierung build/bdist.linux-x86_64/egg/xgboost/compat.py zu compat.pyc
Byte-Kompilierung build/bdist.linux-x86_64/egg/xgboost/core.py zu core.pyc
Byte-Kompilierung build/bdist.linux-x86_64/egg/xgboost/sklearn.py zu sklearn.pyc
Byte-Kompilierung build/bdist.linux-x86_64/egg/xgboost/plotting.py nach plotting.pyc
Paketdaten in build/bdist.linux-x86_64/egg installieren
install_data ausführen
Kopieren von /home/sidvash/xgboost/python-package/xgboost/../../lib/libxgboost.so -> build/bdist.linux-x86_64/egg/xgboost
build/bdist.linux-x86_64/egg/EGG-INFO erstellen
xgboost.egg-info/PKG-INFO kopieren -> build/bdist.linux-x86_64/egg/EGG-INFO
xgboost.egg-info/SOURCES.txt kopieren -> build/bdist.linux-x86_64/egg/EGG-INFO
xgboost.egg-info/dependency_links.txt kopieren -> build/bdist.linux-x86_64/egg/EGG-INFO
xgboost.egg-info/not-zip-safe kopieren -> build/bdist.linux-x86_64/egg/EGG-INFO
xgboost.egg-info/requires.txt kopieren -> build/bdist.linux-x86_64/egg/EGG-INFO
xgboost.egg-info/top_level.txt kopieren -> build/bdist.linux-x86_64/egg/EGG-INFO
'dist/xgboost-0.4-py2.7.egg' erstellen und 'build/bdist.linux-x86_64/egg' hinzufügen
'build/bdist.linux-x86_64/egg' entfernen (und alles darunter)
Verarbeitung von xgboost-0.4-py2.7.egg
Entfernen von '/usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg' (und alles darunter)
/usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg erstellen
Extrahieren von xgboost-0.4-py2.7.egg nach /usr/local/lib/python2.7/dist-packages
xgboost 0.4 ist bereits die aktive Version in easy-install.pth

Installiert /usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg
Verarbeitungsabhängigkeiten für xgboost==0.4
Suche nach scipy
Lesen von https://pypi.python.org/simple/scipy/
Beste Übereinstimmung: Scipy 0.17.0
Herunterladen https://pypi.python.org/packages/source/s/scipy/scipy-0.17.0.zip#md5 =28a4fe29e980804db162524f10873211
Verarbeitung von scipy-0.17.0.zip
Schreiben von /tmp/easy_install-2YPTnH/scipy-0.17.0/setup.cfg
Ausführen von scipy-0.17.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-2YPTnH/scipy-0.17.0/egg-dist-tmp-z4NE5c
Traceback (letzter Anruf zuletzt):
Datei "setup.py", Zeile 39, in
url='https://github.com/dmlc/xgboost')
Datei "/usr/lib/python2.7/distutils/core.py", Zeile 151, im Setup
dist.run_commands()
Datei "/usr/lib/python2.7/distutils/dist.py", Zeile 953, in run_commands
self.run_command(cmd)
Datei "/usr/lib/python2.7/distutils/dist.py", Zeile 972, in run_command
cmd_obj.run()
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/install.py", Zeile 73, in Run
self.do_egg_install()
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/install.py", Zeile 96, in do_egg_install
cmd.run()
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 381, in Ausführung
self.easy_install(spec, nicht self.no_deps)
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 597, in easy_install
return self.install_item(None, spec, tmpdir, deps, True)
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 648, in install_item
self.process_distribution(spec, dist, deps)
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 694, in process_distribution
[Anforderung], self.local_index, self.easy_install
Datei "/usr/lib/python2.7/dist-packages/pkg_resources.py", Zeile 620, in Auflösung
dist = best[req.key] = env.best_match(req, ws, installer)
Datei "/usr/lib/python2.7/dist-packages/pkg_resources.py", Zeile 858, in best_match
return self.obtain(req, installer) # versuchen und herunterladen/installieren
Datei "/usr/lib/python2.7/dist-packages/pkg_resources.py", Zeile 870, in erhalten
Installationsprogramm zurückgeben (Voraussetzung)
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 616, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 646, in install_item
dists = self.install_eggs(spec, download, tmpdir)
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 834, in install_eggs
return self.build_and_install(setup_script, setup_base)
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 1040, in build_and_install
self.run_setup(setup_script, setup_base, args)
Datei "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", Zeile 1025, in run_setup
run_setup(setup_script, Argumente)
Datei "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", Zeile 50, in run_setup
lambda: execfile(
Datei "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", Zeile 100, in Run
Rückgabefunktion()
Datei "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", Zeile 52, in
{' file ':setup_script, ' name ':' main '}
Datei "setup.py", Zeile 265, in

Datei "setup.py", Zeile 253, in setup_package

ImportError: Kein Modul namens numpy.distutils`_

Hilfreichster Kommentar

Wenn 'pip install xgboost' bei Ihnen nicht funktioniert, kann dieses Problem auch behoben werden, indem Sie Folgendes tun

sudo -s
python setup.py install 

Das Problem ist, dass 'sudo python' das Python des Systems anstelle des Pythons von anacoda verwendet.

Weitere Informationen: http://stackoverflow.com/questions/30626160/anaconda-python-not-available-from-sudo

Alle 17 Kommentare

Sind Sie sicher, dass Sie das richtige Python verwenden?

Versuchen

which python

oder

readlink -f `which python`

um festzustellen, ob Sie Anaconda verwenden oder nicht.

Hi,

Danke fürs Kommentieren.

Welche Python gibt Folgendes zurück:
/home/sidvash/anaconda3/bin/python

@brickerino : Ich habe gerade das vollständige Protokoll nach Schritt 5 in der Beschreibung aktualisiert. Bitte sehen Sie, ob das hilft.

Die Meldung zeigt an, dass Sie kein numpy haben, überprüfen Sie bitte, ob Ihr PYTHON_PATH auf den Anaconda-Paketpfad zeigt. Stellen Sie außerdem sicher, dass Conda numpy installiert, wenn noch nicht

@punterlau :
Ich habe den python_path mit dem folgenden Befehl überprüft:
python -c "sys importieren; print(sys.path)"

Es kehrt zurück :
['', '/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']

Das sieht für mich gut aus. Allerdings sehe ich in meinem ersten Post, dass der Pfad "/usr/lib/python2.7/dist-packages" in mehreren Zeilen im Fehler auftaucht und ich bin mir nicht sicher, ob dieser auch im Python-Pfad stehen soll oder nicht. Könnten Sie etwas vorschlagen?

Ich habe auch "conda install numpy" ausgeführt, was Folgendes zurückgegeben hat :

Verwenden der Anaconda Cloud-API-Site https://api.anaconda.org
Paketmetadaten abrufen: ....
Paketspezifikationen lösen: ......................
Paketplan für die Installation in der Umgebung /home/sidvash/anaconda3:

Folgende Pakete werden heruntergeladen:

| Paket | bauen |
| --- | --- |
| Rad-0.29.0 | py35_0 82 KB |

Die folgenden Pakete werden AKTUALISIERT:

wheel: 0.26.0-py35_1 --> 0.29.0-py35_0

Fortfahren ([y]/n)? ja

Pakete werden geholt...
Rad-0.29.0-p 100 % |################################| Zeit: 0:00:01 50,38 kB/s
Pakete entpacken ...
[ KOMPLETT ]|############################################## #####| 100%
Pakete werden getrennt...
[ KOMPLETT ]|############################################## #####| 100%
Pakete verknüpfen...
[ KOMPLETT ]|############################################## #####| 100

Versuchte sudo python setup.py install nach der Installation, aber kein Glück, immer noch der gleiche Fehler

Nun, Sie haben Python vom System und Anaconda und Python 2 3 beide, und Sie haben das Setuptool des Systems, also hat einiges env durcheinander gebracht. Ich kann vorschlagen, eine Virtualenv zu erstellen und numpy scikit-learn und xgboost zu installieren

@phunterlau : Danke für deinen Kommentar. Ich schätze deine Hilfe sehr.

Ich bin ein Neuling in Ubuntu und möchte die Dinge nicht weiter durcheinander bringen.

Könnten Sie mir bitte eine Schritt-für-Schritt-Anleitung dazu erklären?

Ich weiß, dass ich wie folgt eine virtualenv erstellen kann: (Die Installation von virtualenv wird mit conda nicht empfohlen)
conda create -n <env_name> python=3.5 anaconda

Und wie soll ich dann numpy scikit-learn und xgboost auf dieser Umgebung installieren?

Ich kann die Umgebung aktivieren, indem ich:
source activate <env_name>

Soll ich dann einfach mit weiteren Installationen wie folgt vorgehen:
pip install numpy
pip install scikit-learn

Und für xgboost sollte ich all diese Schritte wiederholen?
git clone --recursive https://github.com/dmlc/xgboost cd xgboost; make -j4
cd python-package; sudo python setup.py install

Okay, ich habe folgendes gemacht, aber immer noch genau den gleichen Fehler erhalten:
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

Aus irgendeinem Grund verweist die Installation immer noch auf "/usr/lib/python2.7/dist-packages".

Ich habe es in Ordnung gebracht, indem ich die folgenden Schritte befolge:

  1. Entfernen Sie das aktuelle Verzeichnis namens "xgboost", das ich zuvor von github heruntergeladen habe.
  2. pip installieren xgboost

Dies funktionierte wie ein Zauber. Ich habe dies nicht früher versucht, da auf der Github-Site erwähnt wurde, dass Sie die neueste Version von Github installieren sollten.

Ich habe diese Frage zum Stapelüberlauf gepostet und jemand hat dies vorgeschlagen. Hier ist der Link:
http://stackoverflow.com/questions/35332300/importerror-no-module-named-numpy-distutils-core-ubuntu-xgboost-installation/35493714#35493714

Wie auch immer, vielen Dank für eure Hilfe Jungs: @brickerino @phunterlau

Schön, dass pip install xgboost geholfen hat :-)

Wenn 'pip install xgboost' bei Ihnen nicht funktioniert, kann dieses Problem auch behoben werden, indem Sie Folgendes tun

sudo -s
python setup.py install 

Das Problem ist, dass 'sudo python' das Python des Systems anstelle des Pythons von anacoda verwendet.

Weitere Informationen: http://stackoverflow.com/questions/30626160/anaconda-python-not-available-from-sudo

@knguyen0105 Gut hat für mich funktioniert .... danke Mann .... :)

@knguyen0105 Fehler geben
"/home/ashish/anaconda2/bin/../lib/libgomp.so.1: Version `GOMP_4.0' nicht gefunden (erforderlich von /home/ashish/anaconda2/lib/python2.7/site-packages/xgboost /./lib/libxgboost.so)"

kann jemand helfen?

Was soll PYTHON_PATH zurückgeben?

@knguyen0105 Bei mir hat es

Danke knguyen0105, Zusammenfassung für Ubuntu, Anaconda 2:

  1. http://xgboost.readthedocs.io/en/latest/build.html
  2. sudo -s
    python setup.py install
    Anstatt von
    cd Python-Paket; sudo python setup.py installieren

@knguyen0105, vielen Dank

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen