root@0c6c17725a7b :/# pip installiere xgboost
Herunterladen/Entpacken von xgboost
Es konnte keine Version gefunden werden, die die Anforderung xgboost erfüllt (ab Versionen: 0.4a12, 0.4a13)
Aufräumen...
Keine Distributionen, die der Version für xgboost entsprechen
Speichern des Debug-Protokolls für Fehler in /root/.pip/pip.log
Sie können im Docker wiederholen mit:
docker run -it --rm ubuntu:trusty
apt-get update
apt-get install python-pip
pip install xgboost
siehe auch das:
http://stackoverflow.com/questions/32258463/install-xgboost-under-python-failing
Scheint bei mir nicht zu funktionieren
ubuntu@ip-172-31-11-169 :~$ sudo apt-get update
... jada jada
ubuntu@ip-172-31-11-169 :~$ sudo apt-get install python-pip
Paketlisten lesen... Fertig
Abhängigkeitsbaum erstellen
Zustandsinformationen lesen... Fertig
python-pip ist bereits die neuste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 74 nicht aktualisiert.
ubuntu@ip-172-31-11-169 :~$ sudo pip install xgboost
Herunterladen/Entpacken von xgboost
Es konnte keine Version gefunden werden, die die Anforderung xgboost erfüllt (ab Versionen: 0.4a12, 0.4a13)
Aufräumen...
Keine Distributionen, die der Version für xgboost entsprechen
Speichern des Debug-Protokolls für Fehler in /home/ubuntu/.pip/pip.log
ubuntu@ip-172-31-11-169 :~$
Der Stackoverflow-Vorschlag von --pre erzeugte Folgendes:
ubuntu@ip-172-31-11-169 :~$ sudo pip install --pre xgboost
Herunterladen/Entpacken von xgboost
Herunterladen von xgboost-0.4a13.tar.gz (690 KB): 690 KB heruntergeladen
Ausführen von setup.py (Pfad:/tmp/pip_build_root/xgboost/setup.py) egg_info für Paket xgboost
xgboost/build-python.sh: 13: xgboost/build-python.sh: pushd: nicht gefunden
make: * Keine Regel, um das Ziel python'. Stop.
-----------------------------
Building multi-thread xgboost failed
Start to build single-thread xgboost
make: *** No rule to make target
sauber zu machen'.
Stoppen.Erstellen Sie erfolgreich Single-Thread-xgboostWenn Sie eine Multithread-Version wünschenWeitere Anweisungen finden Sie in doc/build.mdxgboost/build-python.sh: 26: xgboost/build-python.sh: popd: nicht gefunden(Keine, keine)Traceback (letzter Aufruf zuletzt):Datei "
self._handle = _dlopen(self._name, Modus)
OSError: /tmp/pip_build_root/xgboost/xgboost/./wrapper/libxgboostwrapper.so: Ungültiger ELF-Header
Vollständige Ausgabe des Befehls python setup.py egg_info:
xgboost/build-python.sh: 13: xgboost/build-python.sh: pushd: nicht gefunden
make: *** Keine Regel, um das Ziel `python' zu erstellen. Stoppen.
Erstellen von Multi-Thread-xgboost fehlgeschlagen
Beginnen Sie mit dem Erstellen von Single-Thread-xgboost
make: *** Keine Regel, um das Ziel `sauber' zu machen. Stoppen.
make: *** Keine Regel, um das Ziel `python' zu erstellen. Stoppen.
Erstellen Sie erfolgreich Single-Thread-xgboost
Wenn Sie eine Multithread-Version wünschen
Weitere Anweisungen finden Sie in doc/build.md
xgboost/build-python.sh: 26: xgboost/build-python.sh: popd: nicht gefunden
(Keine, keine)
Traceback (letzter Aufruf zuletzt):
Datei "
Datei "/tmp/pip_build_root/xgboost/setup.py", Zeile 20, in
import xgboost
Datei „./xgboost/ init .py“, Zeile 8, in
from .core import DMatrix, Booster
Datei "./xgboost/core.py", Zeile 78, in
_LIB = _load_lib()
Datei "./xgboost/core.py", Zeile 72, in _load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
Datei „ /usr/lib/python2.7/ctypes/init.py “, Zeile 443, in LoadLibrary
return self._dlltype(name)
Datei „ /usr/lib/python2.7/ctypes/init.py “, Zeile 365, in init
self._handle = _dlopen(self._name, mode)
OSError: /tmp/pip_build_root/xgboost/xgboost/./wrapper/libxgboostwrapper.so: Ungültiger ELF-Header
Aufräumen...
Befehl python setup.py egg_info ist mit Fehlercode 1 in /tmp/pip_build_root/xgboost fehlgeschlagen
Speichern des Debug-Protokolls für Fehler in /home/ubuntu/.pip/pip.log
ubuntu@ip-172-31-11-169 :~$
@cliveseldon @grfiv Die Versionierung der Pip-Installation hat einige Verwirrung, da die offizielle Version 0.4 schon lange da ist und die Pip-Installation einige aktuelle Updates aus dem Quellcode enthält, also habe ich die Version mit 0.4a12 0.4a13 genannt etwas. Es wird später ab der nächsten offiziellen Veröffentlichung korrigiert.
Eine gute Lösung für die Aktualisierung der pip-Installation kann das Löschen des xgboost-Verzeichnisses und des /User/phunterlau/python2.7/site-packages/
- print xgboost.__file__
-info-Verzeichnisses sein, beide aus dem Site-Paketverzeichnis, z
Hallo,
Ich habe das gleiche Problem auf meiner Ubuntu-Box:
Laufen :
sudo -H pip install --pre xgboost
python -c "import xgboost"
Scheitert wie folgt:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/xgboost/__init__.py", line 11, in <module>
from .core import DMatrix, Booster
File "/usr/local/lib/python2.7/dist-packages/xgboost/core.py", line 92, in <module>
_LIB = _load_lib()
File "/usr/local/lib/python2.7/dist-packages/xgboost/core.py", line 86, in _load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
return self._dlltype(name)
File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/python2.7/dist-packages/xgboost/./wrapper/libxgboostwrapper.so: invalid ELF header
Ich habe es auch ohne versucht --pre , es schlägt identisch fehl.
Irgendeine Ahnung ?
Danke,
F.
Ich habe pip install xgboost verwendet, um xgboost-0.4a14 auf einem Mac OSX zu installieren. Als ich versuchte, es zu laden, bekam ich diesen Fehler.
OSError Traceback (letzter Aufruf zuletzt)
----> 1 xgboost als xgb importieren
/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/ init .py in
9 os importieren
10
---> 11 von .core import DMatrix, Booster
12 von .training import train, cv
13 aus .sklearn import XGBModel, XGBClassifier, XGBRegressor
/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/core.py in
90
91 # Laden Sie die XGBoost-Bibliothek global
---> 92 _LIB = _load_lib()
93
94 def _check_call(ret):
/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/core.py in _load_lib()
84 if len(lib_path) == 0:
85 Rückgabe Keine
---> 86 lib = ctypes.cdll.LoadLibrary(lib_path[0])
87 lib.XGBGetLastError.restype = ctypes.c_char_p
88 Rückgaberecht
/Users/azaitzeff/anaconda/lib/python2.7/ctypes/ init .pyc in LoadLibrary(self, name)
441
442 def LoadLibrary(selbst, Name):
--> 443 gibt self._dlltype(name) zurück
444
445 cdll = LibraryLoader (CDLL)
/Users/azaitzeff/anaconda/lib/python2.7/ctypes/ init .pyc in init (self, name, mode, handle, use_errno, use_last_error)
363
364, wenn Handle None ist:
--> 365 self._handle = _dlopen(self._name, Modus)
366 sonst:
367 self._handle = Griff
OSError: dlopen(/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so, 6): Bibliothek nicht geladen: /usr/local/lib/gcc/4.9/libgomp .1.dylib
Referenziert von: /Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so
Grund: Bild nicht gefunden
Irgendeine Hilfe. Danke
AZ
@AZaitzeff @Fkawala Danke. Können Sie bestätigen, ob gcc auf Ihrem Ubuntu oder Mac installiert ist? Mit Ihren Informationen sehe ich das Problem der vorkompilierten Bibliothek: Wenn auf dem System kein gcc installiert ist, würde das Build-Skript in pip fehlschlagen. Im Pip-Installationspaket habe ich jedoch eine vorkompilierte Bibliothek libxgboostwrapper.so mit gcc 4.9 von brew in Mac eingefügt. Wenn also das Erstellungsskript fehlschlägt, sucht xgboost nach dieser vorkompilierten Bibliothek. Linux erkennt diese Mac-Lib nicht, daher hat es einen ELF-Codefehler; Bei einem Mac ohne OpenMP wird der Link-Fehler ausgelöst. Jetzt sehe ich, dass es einige Verwirrung verursacht und vielleicht keine gute Idee ist. Ich werde die Pip-Installation aktualisieren und die Meldung anzeigen, wenn kein gcc vorhanden ist. PS Wir werden in der nächsten offiziellen Version eine vorkompilierte und statisch gelinkte Bibliothek haben, die eine bessere Lösung für den Versand von vorkompiliertem Code darstellt.
@phunterlau Danke. Ich habe kein OpenMP auf meinem Mac. Das hat also den Fehler verursacht.
@phunterlau ok, ich werde eine richtige Kompilierungsumgebung einrichten und die Pip-Installation erneut testen.
Danke für die schnelle Antwort.
Also habe ich brew install clang-omp ausgeführt und es installiert. Das xgboost-Verzeichnis und die xgboost-0.4a13.dist-info gelöscht und pip install xgboost erneut ausgeführt. Meine Terminalfenster geschlossen und wieder geöffnet. Aber ich erhalte immer noch den gleichen Fehler, wenn ich versuche, xgboost zu importieren. Irgendwelche Gedanken?
@AZaitzeff tatsächlich clang-omp wird nicht empfohlen, da clang von Xcode es nicht unterstützt, so dass clang-omp ein seltsames Ergebnis liefern kann. Das Mac-Pip-Installationspaket wurde auf gcc 4.9 von Brew mit OpenMP erstellt und getestet. Möchten Sie es mit brew install gcc49
versuchen? Jetzt haben wir auch gcc 5 von Brew, aber ich hatte noch keine Gelegenheit, es vollständig zu testen. Ich werde es im nächsten Pip-Upload tun.
Danke das hat super funktioniert.
@phunterlau der Build (mit ./xgboost/build-python.sh
) funktioniert wie ein Zauber. Die Pip-Installation führt jedoch zu der vorkompilierten Bibliothek. Ich habe setup.py
geändert, um zu zeigen, warum die Kompilierung nicht versucht wird. Mit PIP 7.1.2 (Python 2.7) zum Ausführen:
pip install --user -e ./tweaked-xgboost-0.4a13/
gibt:
'pip' in __file__: False
not os.name == 'nt': True
Laut http://stackoverflow.com/questions/9959279/detect-pip-in-setup-py [1] funktioniert der 'pip' in __file__
-Test weder mit Py 2.7 2014-10-27 noch mit benutzerdefinierter Installation ( wie ich es in meinem vorherigen Kommentar verwendet habe). Wie in [1] vorgeschlagen, ist 'pip' in os.environ.get('_')
eine Standardmethode, um zu testen, ob pip setup.py
.
@Fkawala Danke. 'pip' in __file__
war ein alter Trick von vor langer Zeit, schön den neuen zu kennen. Ich werde die Pip-Installation aktualisieren und später eine PR (mit einigen anderen Patches) senden.
@phunterlau Ich habe ein ähnliches Problem, habe nicht verstanden, wie dieser ELF-Fehler behoben werden kann. Ich arbeite an Ubuntu und kann das xgboost-Paket nach der Installation mit Pip nicht importieren. Sie haben über gcc geschrieben, ich habe gcc-4.9 installiert, aber es funktioniert immer noch nicht, was fehlt mir?
Hier ist mein Fehler:
OSError Traceback (letzter Aufruf zuletzt)
----> 1xgboost importieren
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/ init .py in
9 os importieren
10
---> 11 von .core import DMatrix, Booster
12 von .training import train, cv
13 aus .sklearn import XGBModel, XGBClassifier, XGBRegressor
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/core.py in
90
91 # Laden Sie die XGBoost-Bibliothek global
---> 92 _LIB = _load_lib()
93
94 def _check_call(ret):
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/core.py in _load_lib()
84 if len(lib_path) == 0:
85 Rückgabe Keine
---> 86 lib = ctypes.cdll.LoadLibrary(lib_path[0])
87 lib.XGBGetLastError.restype = ctypes.c_char_p
88 Rückgaberecht
/home/antklen/anaconda/lib/python2.7/ctypes/__init__.pyc in LoadLibrary(self, name)
441
442 def LoadLibrary(selbst, Name):
--> 443 gibt self._dlltype(name) zurück
444
445 cdll = LibraryLoader (CDLL)
/home/antklen/anaconda/lib/python2.7/ctypes/__init__.pyc in init (self, name, mode, handle, use_errno, use_last_error)
363
364, wenn Handle None ist:
--> 365 self._handle = _dlopen(self._name, Modus)
366 sonst:
367 self._handle = Griff
OSError: /home/antklen/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so: Ungültiger ELF-Header
@antklen In Windows müssen Sie zuerst die Setuptools installieren. Ich bin mir nicht sicher, ob das bei Ubuntu der Fall ist, aber vielleicht einen Versuch wert?
@antklen liegt daran, dass die aktuelle Pip-Installation ein On-the-Fly-Compiler-Skript ist und mit einer Mac-Version der .so-Datei geliefert wird, falls einige Mac-Benutzer g ++ nicht zum Kompilieren installiert haben. Es stellte sich als keine gute Idee heraus und sorgte für einige Verwirrung bei Linux-Benutzern.
Die Lösung ist, dass Sie bitte gcc und g++ apt-get install g++
installieren, damit das Kompilierungsskript übernommen wird.
Und wenn Ihr Pip neuer als 0.7.1.2 ist, kann es ein weiteres Problem geben, zu überprüfen, ob Pip ausgeführt wird. Ich werde es in der nächsten Version reparieren und versenden. Wenn Sie g++ haben, aber immer noch den gleichen Fehler, installieren Sie bitte manuell von setup.py, indem Sie dem Installationsdokument folgen.
@smargsongithub @phunterlau Vielen Dank für die Antworten!
apt-get install g++ hat bei mir auch nicht funktioniert, aber ich habe Erfolg mit der manuellen Installation wie hier beschrieben https://www.kaggle.com/c/springleaf-marketing-response/forums/t/16320/cloud-vs- lokale-maschine-vor-und-nachteile
Ich hatte einige Probleme, weil ich Anaconda verwende, also ist mein endgültiges Rezept
sudo apt-get install make
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install git
sudo git clone https://github.com/dmlc/xgboost
CD xgboost
sudo ./build.sh
cd Python-Paket
sudo /home/username/anaconda/bin/python setup.py installieren
@antklen oh, du brauchst sudo wenn du g++ installierst :-)
@Fkawala Ich versuche 'pip' in os.environ.get('_')
für den aktualisierten Pip, aber os.environ.get('_')
gibt immer None
zurück und diese if-Anweisung gibt einen Fehler aus. Haben wir eine andere Methode zum Erkennen von Pip in der Befehlszeile? Andernfalls würde ich ein separates setup.py
nur für pip erstellen und dort den Compiler auslösen. Danke.
@phunterlau Ich bekomme das folgende Traceback von pip install xgboost, irgendwelche Gedanken? (mit einem Mac)
Traceback (letzter Aufruf zuletzt):
Datei "
Datei "/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/setup.py", Zeile 38, in
LIB_PATH = libpath 'find_lib_path'
Datei „/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/libpath.py“, Zeile 47, in find_lib_path
'Liste der c andidates:n ' + ('n'.join(dll_path)))
builtin .XGBoostLibraryNotFound: XGBoost Libarary kann nicht im Kandidatenpfad gefunden werden, haben Sie build.sh im Stammpfad ausgeführt?
Kandidatenliste:
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/../../wrapper/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/./wrapper/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/../../../xgboost/wrapper/libxgboostwrapper.so
Befehl „python setup.py egg_info“ ist mit Fehlercode 1 in /private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost fehlgeschlagen
@pcohen89 Dieses Python-Paket wird mit C++-Code geliefert und im laufenden Betrieb kompiliert, sodass Sie möglicherweise einen Compiler benötigen. Haben Sie Ihren Compiler installiert, zB gcc-5 oder clang LLVM von Xcode? Mac installiert standardmäßig keine xcode-Befehlszeilentools und Sie können dieser Anleitung folgen http://railsapps.github.io/xcode-command-line-tools.html oder eine andere bessere Wahl ist die Installation homebrew
http ://brew.sh/ und brew install g++-5
. Die spätere Option (g++-5) bietet Multi-Thread-OpenMP-Unterstützung.
Entfernen Sie nach der Installation der Compiler bitte die alte xgboost-Installation und wiederholen Sie pip install xgboost
@antklen @phunterlau Versucht, die von @antklen erwähnten Schritte zu befolgen. Jetzt kann ich import xgboost auf dem Terminal ausführen. Auf Anacondas Ipython Notebook gibt es mir jedoch den folgenden Fehler. Bitte um Hilfe. Ich verwende Ubuntu.
XGBoostLibraryNotFound: Cannot find XGBoost Libarary in the candicate path, did you run build.sh in root path?
List of candidates:
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/../../wrapper/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so
@Jeechu das bedeutet, dass xgboost nicht kompiliert wurde, hast du:
pip install xgboost -v
kann mehr über die Fehlermeldung sagen.
@phunterlau Ich und @Jeechu haben die alte xgboost-Installation entfernt und gcc,g++ installiert. XGBoost läuft gut über das Terminal, aber mit Anaconda Ipython Notebook gibt es diesen Fehler.
Stimmt etwas mit dem Installationspfad nicht?
@rajdeltarobo @Jeechu was ist die Python-Version deines Ipython-Notebooks? und was sind Ihre $PYTHONPATH
-Variablen in der .bashrc (oder anderen env-Dateien aus Ihren Shells)?
Anscheinend sucht Ihr xgboost nach $# python setup.py install
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/
, was kein Pip-Installationspfad ist (die Pip-Installation hat seine zusätzliche Versionsnummer, z von github, daher kann das Problem von $PYTHONPATH
kommen
@phunterlau $PYTHONPATH
ist nicht definiert, es gibt ein Leerzeichen zurück. Unten ist jedoch der Wert von path
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/simpl/anaconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Der Python-Pfad ist
➜ ~ which python
/usr/bin/python
Die Python-Version von ipython notebook ist 2.7
Wie wäre es, wenn Sie Ihrem PYTHONPATH so etwas hinzufügen:
/Users/simpl/anaconda/lib/python2.7/site-packages/
Wenn Sie Python von Anaconda verwenden möchten, bleiben Sie einfach für alles dabei, andernfalls verwenden Sie virtualenv
, anstatt mehrere Python-Installationen zu haben. Es ist sehr verwirrend, wenn mehrere Python-Installationen auf demselben Computer vorhanden sind.
@phunterlau Funktioniert nicht. Ich benutze Ubuntu so hinzugefügt
/home/user/anaconda/lib/python2.7/site-packages/
Obwohl ich dies am Ende der Bashrc-Datei sehen kann
# added by Anaconda 2.3.0 installer
export PATH="/home/user/anaconda/bin:$PATH"
@phunterlau Ich hatte gcc installiert und fand das reicht aus. Habe Xcode und es hat alles funktioniert. Vielen Dank für Ihre Unterstützung bei Xgboost, es ist großartig und Sie alle sind super hilfreich.
@ pcohen89 schön zu wissen, dass xcode geholfen hat. Möglicherweise stellen Sie fest, dass xcode clang nur Single-Thread-xgboost unterstützt, also sollten Sie brew install g++-5
für Multithread-Unterstützung ausprobieren. Jedenfalls ist eine Arbeitskopie eine gute Kopie.
@rajdeltarobo PATH unterscheidet sich von PYTHONPATH, wobei PYTHONPATH Python ermöglicht, die angepasste Paketinstallation zu finden. Bitte fügen Sie es hinzu und beziehen Sie Ihre bashrc.
Kopieren Sie /wrapper/libxgboostwrapper.so nach /home/username/anaconda3/lib/python3.4/site-packages/xgboost-0.4-py3.4.egg/xgboost/ löste das Problem für mich (ich verwende Ubuntu 14.04)
mein problem war:
XGBoostLibraryNotFound: Die XGBoost-Bibliothek kann nicht im Kandidatenpfad gefunden werden. Haben Sie build.sh im Stammpfad ausgeführt?
Kandidatenliste:
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/../../wrapper/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so
@davutpolat Der Fehler aus Ihrer Nachricht stammt von einer kürzlichen Änderung zur Konfliktlösung für die Pip-Installation, aber es stellte sich heraus, dass diese Änderung keine gute Idee war, also haben wir sie rückgängig gemacht (PR #572). In Zukunft wird diese Kopie nicht mehr benötigt und wir werden eine weitere separate Setup-Konfiguration nur für die Pip-Installation mit Kompilierung im laufenden Betrieb haben. Entschuldigen Sie die Unannehmlichkeiten in den letzten Tagen.
Ich versuche, xgboost über pip zu installieren, scheitere jedoch mit demselben Fehler wie @davutpolat . Ich wollte seine Lösung verwenden, aber ich habe keine Ahnung, wo /wrapper/libxgboostwrapper.so zu finden ist.
@claygirl hast du gcc oder clang in deinem system? teilen Sie bitte auch Ihre Systemumgebung und Fehlermeldung mit
Lösung. Ich hatte denselben OSError: /usr/local/lib/libxgboostwrapper.so: Datei mit gemeinsam genutztem Objekt kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis. Ich habe die kopiert
site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so nach /usr/local/lib/ und scheint zu funktionieren.
Aber nicht zufrieden damit, da ich sowohl 2.7 als auch 3.4 habe. ..Irgendeine neue Auflösung?
@dsivakumar site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper ist der erwartete Speicherort für libxgboostwrapper.so, wenn die Installation mit pip erfolgt und xgboost/lib_path.py diesen Pfad enthält, also import xgboost
kann es leicht finden. Wenn Sie sowohl 2.7 als auch 3.4 möchten, verwenden Sie bitte virtualenv und installieren Sie mit Pip separat, da Pip von den Python-Versionen abhängt.
@phunterlau Danke, das scheint die einzige Lösung zu sein.
Ich habe es mehrmals versucht, aber die Hoffnung verloren, xgboost auf meinem Windows-PC zu installieren.
aber vielleicht hilft dir jetzt was zu tun
es ist der Fehler
C:UsersSander>pip installiere xgboost
Sammeln von xgboost
Herunterladen von xgboost-0.4a30.tar.gz (753kB)
100% |##################################| 753kB 397kB/s
Keine Dateien/Verzeichnisse in
c:usersanderappdatalocaltemppip-build-gqsijfxgbo
ostpip-Ei-Info (von PKG-INFO)
Ich verwende die Anaconda-Python-Installation
Ich erinnere mich, dass jemand bei einem der Kaggle-Wettbewerbe die Installation von xgboos und
wählt eine andere Technik und er bekommt den 2. Platz...
Am Donnerstag, den 7. Januar 2016 um 3:31 Uhr schrieb dsivakumar [email protected] :
@phunterlau https://github.com/phunterlau Danke, das scheint das einzige zu sein
Lösung.—
Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/dmlc/xgboost/issues/463#issuecomment -169595600.
@ Sandy4321 Windows unterstützt die Pip-Installation jetzt nicht, da sie nicht für den VS-Befehlszeilen-Compiler festgelegt wurde, wie in der Installationsanleitung und der Fehlerbehebung erwähnt. Bitte verwenden Sie zum Kompilieren und Installieren die VS-Lösungsdatei in windows/
. Ich hoffe, es kann dir auch helfen, den 2. Platz zu erreichen :-)
Ich versuche, Xgboost auf Mac 10.10.5 ohne Xcode zu installieren. Ich habe zuerst GCC 5.3 mit Openmp-Unterstützung von brew install gcc --without-multilib installiert. Zweitens baue ich xgboost by
git clone --recursive https://github.com/dmlc/xgboost
CD xgboost
export CC=/usr/local/bin/gcc-5
export CXX=/usr/local/bin/g++-5
cp make/config.mk ./config.mk
mach -j4
Dann erscheint ein Fehler, wie unten,
make: ** [lib/libxgboost.a] Fehler 1make: * * Warten auf unvollendete Jobs....
clangclang: : Warnung: Warnung: Argument wird während der Kompilierung nicht verwendet: '-pthread'
Argument, das während der Kompilierung nicht verwendet wird: '-pthread'
ld: Bibliothek für -lgomp nicht gefunden
ld: Bibliothek für -lgomp nicht gefunden
clang: error: linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: ** [lib/libxgboost.so] Fehler 1make: * * [xgboost] Fehler 1
Ich ignorierte den Fehler und machte weiter. Ich habe Codes wie unten eingegeben
sudo ./build.sh
Dann hieß es
clang: Warnung: Argument während der Kompilierung nicht verwendet: '-pthread'
Erstellen Sie erfolgreich Single-Thread-xgboost
Würden Sie mir bitte sagen, warum es immer noch ein Single-Thread-Xgboost ist, obwohl ich GCC 5 mit OpenMP installiert habe.
Was sollte ich tun, um das von mir installierte Xgboost in eine Multithread-Version zu ändern?
Das aktuelle Makefile funktioniert besser mit clang-omp.
Hallo, vielen Dank für Ihre Antwort.
Sie meinen, dass xgboost jetzt kein gcc benötigt und clang als Compiler auch Multi-Threading unterstützen kann, oder? Da MAC 10.9 und höher mit clang geliefert wird, muss ich immer noch clang-omp von Homebrew herunterladen
Ich bin ein Anfänger. Früher habe ich xgboost gemäß der Methode auf dieser Website installiert. Gibt es jetzt eine aktualisierte Installationsanleitung? Können Sie mir sagen, wie ich sie konfigurieren muss?
Muss ich außerdem nach dem Wechsel zu clang-omp zuerst das bereits installierte xgboost löschen und dann xgboost neu installieren?
Danke!
Am 03.04.2016 01:34:37 schrieb "Hongliang Liu" [email protected] :
Das aktuelle Makefile funktioniert besser mit clang-omp.
—
Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
Thx für deine schnelle Antwort. Gemäß Ihrem Vorschlag habe ich clang-omp über Homebrew heruntergeladen.
Was ist dann der nächste Schritt für mich? Ob ich den aktuellen xgboost entfernen und stattdessen neu installieren sollte.
Bitte ändern Sie den Standard-Compiler in config.mk auf clang-omp. Bitte folgen Sie der Bauanleitung Mac OS X Teil.
Thx für deine Anleitung. Und ich habe den Standard-Compiler in config.mk so auf clang-omp geändert
` export CC = /usr/local/bin/clang-omp
export CXX = /usr/local/bin/clang-omp++
ADD_CFLAGS = -fopenmp`
Dann kompiliere ich durch
make -j8
Allerdings taucht der Fehler wieder auf:
make: ** [lib/libxgboost.a] Fehler 1make: * * Warten auf unvollendete Jobs....
clang-3.5clang-3.5: : errorerror: : no such file or directory: 'rabit/lib/librabit.a'no such file or directory: 'rabit/lib/librabit.a'
make: ** [lib/libxgboost.so] Fehler 1make: * * [xgboost] Fehler 1
Ist etwas falsch für mich?
Und ich laufe
sudo ./build.sh
Fehler erscheint wie unten
include/dmlc/omp.h:13:9: Warnung: Warnung: OpenMP ist nicht verfügbar, Projekt wird
in Single-Thread-Code kompiliert werden. Verwenden Sie einen OpenMP-fähigen Compiler, um zu erhalten
Vorteile von Multithreading. [-W#Pragma-Nachrichten]pragma message("Warnung: OpenMP ist nicht verfügbar, "
versuchen Sie bitte, clang-omp
von brew remove clang-omp; brew install clang-omp
neu zu installieren; Ändern Sie nur diese beiden Zeilen (kein ADD_FLAG
) in config.mk
, und stellen Sie sicher, dass Sie sie in dasselbe Verzeichnis wie Makefile
kopieren.
export CC = clang-omp
export CXX = clang-omp++
und führen Sie make
aus
Mit Windows 7. Anaconda von yhat Rodeo.
Beim Versuch, xgboost zu installieren, wird die folgende Fehlermeldung angezeigt. Bitte helfen Sie.
`! pip installiere xgboost
Sammeln von xgboost
Zwischengespeichertes xgboost-0.4a30.tar.gz verwenden
Keine Dateien/Verzeichnisse in C:UsersUSERAppDataLocalTemppip-build-dkmqc8n1xgboostpip-egg-info (von PKG-INFO)`
@phunterlau Danke für deinen Vorschlag. Ich habe Ihre Anleitung ausprobiert und folgende Fehlermeldung erhalten. Bitte geben Sie einen Vorschlag.
Ich habe clang-imp neu installiert und zwei Zeilen (kein ADD_FLAG) in config.mk im selben Verzeichnis wie Makefile geändert
export CC = clang-omp
export CXX = clang-omp++
Dann führe ich sudo make -j4
aus und erhalte den folgenden Fehler.
ar crv lib/libxgboost.a
ar: no archive members specified
usage: ar -d [-TLsv] archive file ...
ar -m [-TLsv] archive file ...
ar -m [-abiTLsv] position archive file ...
ar -p [-TLsv] archive [file ...]
ar -q [-cTLsv] archive file ...
ar -r [-cuTLsv] archive file ...
ar -r [-abciuTLsv] position archive file ...
ar -t [-TLsv] archive [file ...]
ar -x [-ouTLsv] archive [file ...]
make: *** [lib/libxgboost.a] Error 1
make: *** Waiting for unfinished jobs....
clang-3.5: warning: argument unused during compilation: '-pthread'
clang-3.5: warning: argument unused during compilation: '-pthread'
Dann führe ich sudo ./build.sh
aus und erhalte die folgende Fehlermeldung
ar crv lib/libxgboost.a
ar: no archive members specified
usage: ar -d [-TLsv] archive file ...
ar -m [-TLsv] archive file ...
ar -m [-abiTLsv] position archive file ...
ar -p [-TLsv] archive [file ...]
ar -q [-cTLsv] archive file ...
ar -r [-cuTLsv] archive file ...
ar -r [-abciuTLsv] position archive file ...
ar -t [-TLsv] archive [file ...]
ar -x [-ouTLsv] archive [file ...]
make: *** [lib/libxgboost.a] Error 1
-----------------------------
Building multi-thread xgboost failed
Hallo allerseits,
Um Xgboost unter Windows mit Python zu installieren, befolgen Sie die Anweisungen im folgenden Thread.
@boral ja, die aktuelle Pip-Installation unterstützt keine Windows-Plattform. schön, dass du es herausgefunden hast
@liyanjin du kannst einfach 'make xgboost' für den Kernteil machen. Um ar zu haben, müssen Sie möglicherweise ar für mac installieren
Ich stehe vor einem ähnlichen Problem. Mein Fehler ist ziemlich
OSError: dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): Library not loaded: @rpath/./libgomp.1.dylib
Referenced from: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
Reason: image not found
Ich habe überprüft, ob gcc installiert ist.
$ brew gcc49 installieren
Warnung: homebrew/versions/gcc49-4.9.3 bereits installiert
Ich bin auf Mac OS und habe xgboost über Anaconda installiert
@lalmanisha Ich glaube, Sie verwenden einen Mac. Die aktuelle Best Practice auf dem Mac ist die Verwendung clang-omp
anstelle von gcc
. Können Sie versuchen, clang-omp
von Brew zu installieren und CC und CXX in der config.mk in clang-omp zu ändern?
Danke für deine Antwort. Ich bekomme immer noch die gleiche Fehlermeldung. Hier ist das
`-------------------------------------------------------- -------------------------
OSError Traceback (letzter Aufruf zuletzt)
14 # Alle Ergebnisse, die Sie in das aktuelle Verzeichnis schreiben, werden als Ausgabe gespeichert.
fünfzehn
---> 16 xgboost als xgb importieren
17 aus sklearn.linear_model import LogisticRegression
18 Pandas als pd importieren
/Users/mlal/anaconda/lib/python2.7/site-packages/xgboost.py in
80
81 # Laden Sie die XGBoost-Bibliothek global
---> 82 xglib = load_xglib()
83
84
/Users/mlal/anaconda/lib/python2.7/site-packages/xgboost.py in load_xglib()
57 if len(dll_path) == 0:
58 raise XGBoostLibraryNotFound('kann die Dateien im Kandidatenpfad nicht finden ' + str(dll_path))
---> 59 lib = ctypes.cdll.LoadLibrary(lib_path[0])
60
61 # DMatrix-Funktionen
/Users/mlal/anaconda/lib/python2.7/ctypes/ init .pyc in LoadLibrary(self, name)
441
442 def LoadLibrary(selbst, Name):
--> 443 gibt self._dlltype(name) zurück
444
445 cdll = LibraryLoader (CDLL)
/Users/mlal/anaconda/lib/python2.7/ctypes/ init .pyc in init (self, name, mode, handle, use_errno, use_last_error)
363
364, wenn Handle None ist:
--> 365 self._handle = _dlopen(self._name, Modus)
366 sonst:
367 self._handle = Griff
OSError: dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): Bibliothek nicht geladen: @rpath/./libgomp.1.dylib
Referenziert von: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
Grund: Bild nicht gefunden
`
Ich habe die Datei config.mk wie folgt geändert
Wahl des Compilers
export CC = klang-omp
export CXX = klang-omp
export MPICXX = mpicxx
sudo make -j4
ar crv lib/libxgboost.a
ar: keine Archivmitglieder angegeben
Verwendung: ar -d [-TLsv] Archivdatei ...
ar -m [-TLsv] Archivdatei ...
ar -m [-abiTLsv] Positionsarchivdatei ...
ar -p [-TLsv] Archiv [Datei ...]
ar -q [-cTLsv] Archivdatei ...
ar -r [-cuTLsv] Archivdatei ...
ar -r [-abciuTLsv] Positionsarchivdatei ...
ar -t [-TLsv] Archiv [Datei ...]
ar -x [-ouTLsv] Archiv [Datei ...]
make: ** [lib/libxgboost.a] Fehler 1make: * * Warten auf unvollendete Jobs....
clang: clang: error: error: nicht unterstützte Option '-fopenmp' nicht unterstützte Option '-fopenmp'
make: ** [lib/libxgboost.so] Fehler 1make: * * [xgboost] Fehler 1
Als ich rannte
sudo ./build.sh
maker.o build/tree/updater_sync.o dmlc-core/libdmlc.a rabit/lib/librabit_empty.a -pthread -lm
clang: Warnung: Argument während der Kompilierung nicht verwendet: '-pthread'
Erstellen Sie erfolgreich Single-Thread-xgboost
Wenn Sie eine Multithread-Version wünschen
Weitere Anweisungen finden Sie in doc/build.md
Ich bekomme immer noch denselben Fehler
dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): Bibliothek nicht geladen: @rpath/./libgomp.1.dylib
Referenziert von: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
Grund: Bild nicht gefunden
ok, ich schätze, die Kombination aus obiger Hilfe und build.md hat mir geholfen, xgboost zum Laufen zu bringen. Danke euch allen !
@lalmanisha Da Sie nur das Python-Paket benötigen, können Sie einfach make xgboost
entfernen, wodurch andere unnötige Pakete wie die Parallel- und Garnversion entfernt werden, die ar
benötigen. Es sollte make
erfolgreich gewesen sein. Und schön, dass du es herausgefunden hast.
Versuchen Sie, Xgboost mit git clone
auf dem MAC zu installieren. Ich befolge alle Anweisungen von @LiyanJin bis zu dieser Antwort . Ich habe clang-omp über Homebrew heruntergeladen, um Multi-Threading zu verwenden.
export CC = clang-omp
export CXX = clang-omp++
export MPICXX = mpicxx
clang-omp++ -std=c++0x -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -fopenmp -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
In file included from src/learner.cc:7:
In file included from include/xgboost/logging.h:11:
In file included from dmlc-core/include/dmlc/logging.h:10:
/usr/local/Cellar/clang-omp/2015-04-01/libexec/bin/../include/c++/v1/cstdio:100:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^
1 error generated.
make: *** [build/learner.o] Error 1
pip install
funktioniert gut, aber ich hätte gerne die neuesten Funktionen im Python-Paket.
Einige Hinweise ?
Bearbeiten: Finden Sie die Lösung. Nur xcode-select --install
und make
. Hoffe es hilft anderen.
@armgilles , das ist richtig: Mac hat die Compiler standardmäßig nicht mit Headern installiert, während clang-omp
den lokal installierten Xcode benötigt, die Installation von xcode-select --install
alles nach dem Upgrade auf ein neues System kann das Problem lösen .
Ich musste es von Grund auf neu bauen:
git clone --recursive https://github.com/dmlc/xgboost.git
cd xgboost
./build.sh
pip install -e python-package
Der hnykda-Vorschlag hat bei mir unter Ubuntu 16.0.4 funktioniert
@phunterlau
Ich habe den gleichen Fehler.
ar crv lib/libxgboost.a
ar: keine Archivmitglieder angegeben
Verwendung: ar -d [-TLsv] Archivdatei ...
ar -m [-TLsv] Archivdatei ...
ar -m [-abiTLsv] Positionsarchivdatei ...
ar -p [-TLsv] Archiv [Datei ...]
ar -q [-cTLsv] Archivdatei ...
ar -r [-cuTLsv] Archivdatei ...
ar -r [-abciuTLsv] Positionsarchivdatei ...
ar -t [-TLsv] Archiv [Datei ...]
ar -x [-ouTLsv] Archiv [Datei ...]
make: * [lib/libxgboost.a] Fehler 1
ich habe ar installiert. Ich frage mich, was die "ar crv" tun, wenn ich einen anderen Befehl zum Ersetzen verwenden kann.
Sie haben erwähnt " @liyanjin Sie können einfach 'make xgboost' für den Kernteil machen. Um ar zu haben, müssen Sie möglicherweise ar für Mac installieren", ich verstehe nicht, was "mach 'make xgboost' für den Kernteil" bedeutet. hoffe auf eure ratschläge
Ich habe das Paket auf meinem MAC (macOS 10.12.3) erfolgreich installiert durch:
brew install --with-clang llvm
brew install cmake
brew install gcc --without-multilib
git clone --recursive https://github.com/dmlc/xgboost
cd xgboost; cp make/config.mk ./config.mk; make -j4
cd python-package/ ; python setup.py install
@hnykda Oft ist die funktionierende Lösung die scheinbar einfache. Danke, Mann.
Die Lösung, die ich für mich gefunden habe, war die Navigation zu
/home/username/anaconda3/lib/python3.5/site-packages/xgboost
und führe ./build-python.sh aus
Es scheint, dass es viele Probleme bei der Installation von xgboost gibt. Ich habe versucht, auf einem Mac zu installieren, und bin auch fehlgeschlagen. Könnte osmeone mir sagen, was die endgültige Lösung ist?
Was für mich funktioniert hat, war das Hinzufügen des Folgenden unter Linux ... Gutschrift (alle oben)
git clone --recursive https://github.com/dmlc/xgboost.git
cd xgboost
./build.sh
pip install -e python-package
cd python-package
python setup.py install
Für mich arbeitete auf MacOS Sierra nach:
brew install gcc --without-multilib
Ausführen dieser Befehle:
export CC=gcc-7
export CXX=g++-7
@philipshurpik Tausend Dank!
@philipshurpik Das hat bei mir ziemlich gut funktioniert, danke!
Hilfreichster Kommentar
Ich musste es von Grund auf neu bauen: