Ich habe versucht, PyTorch zu installieren, kann es aber nicht verwenden. Die dynamische Bibliothek libomp.dylib kann nicht verknüpft werden
Schritte zum Reproduzieren des Verhaltens:
from torch.utils.data import Dataset
Traceback (most recent call last):
File "/Users/kaspersapala/Documents/Airly/new-pollution-forecast/Datasets/__init__.py", line 3, in <module>
from torch.utils.data import Dataset
File "/Users/kaspersapala/.local/share/virtualenvs/new-pollution-forecast-BSetKF9E/lib/python3.7/site-packages/torch/__init__.py", line 79, in <module>
from torch._C import *
ImportError: dlopen(/Users/kaspersapala/.local/share/virtualenvs/new-pollution-forecast-BSetKF9E/lib/python3.7/site-packages/torch/_C.cpython-37m-darwin.so, 9): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
Referenced from: /Users/kaspersapala/.local/share/virtualenvs/new-pollution-forecast-BSetKF9E/lib/python3.7/site-packages/torch/lib/libshm.dylib
Reason: image not found
PyTorch verwenden und importieren können
conda
, pip
, Quelle): pipenvbrew install libomp
löst das Problem.
cc @JerryShih
cc @ pjh5 @kostmo
brew install libomp
löst das Problem.
@ezyang
Wie füge ich die libomp-Abhängigkeit in der Pytorch-Pip-Installation hinzu?
Werden alle pytorch-abhängigen Bibliotheken im Wheel-Paket gesichert?
Wenn ja, füge ich die libomp-Dateien wie diesen Code hinzu: https://github.com/pytorch/pytorch/blob/2356fac9a5205a2e11f1abf6105fdb3124246d41/setup.py#L738 -L825
Wie sieht es mit anderen abhängigen Bibliotheken aus? Befinden sie sich alle im Ordner von Drittanbietern und wurden aus dem Quellcode erstellt?
pip hat keine Ahnung von Brauen, Sie können es nicht bitten, ein Paket zu installieren. Auch wenn diese Auflösung das Problem "löst", würde ich gerne besser verstehen, wie diese Abhängigkeit entstanden ist (insbesondere warum erstellen wir Binärdateien mit einer Abhängigkeit von Brew-Bibliotheken? Das klingt schlecht.)
In einigen Fällen, in denen wir nicht davon ausgehen können, dass Endbenutzer eine Bibliothek installiert haben, verteilen wir die Bibliothek mit unseren Binärdateien. Ich bin mir jedoch nicht sicher, ob wir dies für libomp.dylib tun sollten. cc @soumith
das ist etwas, das behoben werden muss. Ich kann einen Blick auf das Reparieren von Binärdateien und das erneute Hochladen werfen.
Das Problem ist, dass unser macos CI hier libomp installiert: https://github.com/pytorch/pytorch/blob/0da0c4be48c675d61c39b4554131e1dbe9177cab/.circleci/verbatim-sources/header-section.yml#L294 , ich denke für CI / Testing. Aber auch binäre Builds nehmen es auf und verwenden es.
Ich kann diese Abhängigkeit für die Binärdateien entfernen. Ich werde bald eine PR rausbringen
brew install libomp löst das Problem
das löst mein problem
Ich stimme @ezyang zu, dass eine Pytorch-Installation über pip nicht von brew abhängen sollte. PyTorch ist eine Abhängigkeit für meine Bibliothek und meine Benutzer können oder können sich nicht für das Gebräu interessieren.
Um das klarzustellen, bestand die Lösung darin, den Schritt brew install libomp
zu entfernen && die plattformspezifischen Bibliotheken von libomp (.dylib, .so usw.) richtig zu packen? Ist das korrekt?
Wenn ich mit diesem Fix die neueste nächtliche Version abrufen möchte ... wäre das ein pip install torch_nightly -f blah.html
?
@ruohoruotsi das ist alles richtig
Nur als Referenz: Wenn Sie Macports verwenden, kann das Problem umgangen werden, indem ein Symlink mit sudo ln -s /opt/local/lib/libomp/libomp.dylib
in /usr/local/opt/libomp/lib/
.
Nur als Referenz: Wenn Sie Macports verwenden, kann das Problem umgangen werden, indem ein Symlink mit
sudo ln -s /opt/local/lib/libomp/libomp.dylib
in/usr/local/opt/libomp/lib/
.
Das Problem sollte von PyTorch behoben werden, indem das Bibliotheksformularsystem durchsucht wird, anstatt nur /usr/local/opt/ zu überprüfen
brew install libomp
löst das Problem.
Es funktioniert!
Beim Versuch, pytorch von 1.0.1 auf 1.1 zu aktualisieren, bin ich auf das gleiche Problem gestoßen und habe diesen Thread gefunden
das Update auf dem Linux-Server hat gut funktioniert, aber nicht auf meinem Macbook (OSX)
Ich habe versucht, Libomp zu installieren, aber die Brühformel konnte nicht gefunden werden. Daher wurde das Problem nicht behoben und ich musste auf OSX auf 1.0.1 zurückstufen, um die Fackel erneut importieren zu können
Hatte jemand das gleiche Problem bezüglich der Pip-Installation von Pytorch und der Brew-Installation von Libomp?
@soumith
Ich kann einen Blick auf das Reparieren von Binärdateien und das erneute Hochladen werfen.
Ist dies noch geplant oder warten neue Binärversionen auf die nächste PyTorch-Version?
Beim Versuch, pytorch von 1.0.1 auf 1.1 zu aktualisieren, bin ich auf das gleiche Problem gestoßen und habe diesen Thread gefunden
das Update auf dem Linux-Server hat gut funktioniert, aber nicht auf meinem Macbook (OSX)
Ich habe versucht, Libomp zu installieren, aber die Brühformel konnte nicht gefunden werden. Daher wurde das Problem nicht behoben und ich musste auf OSX auf 1.0.1 zurückstufen, um die Fackel erneut importieren zu können
Hatte jemand das gleiche Problem bezüglich der Pip-Installation von Pytorch und der Brew-Installation von Libomp?
Sie müssen zuerst Brew installieren, zur Brew-Site gehen und den Installationsanweisungen folgen.
danke für deine antwort, ich hatte brauen installiert aber es war nicht aktuell genug
Also habe ich alles aktualisiert und jetzt funktioniert es
Hinweis für andere Benutzer, als ich Libomp installiert habe, ging es durch, aber andere Anwendungen funktionierten nicht mehr (Spyder IDE); zu diesem Zeitpunkt war mein OS noch 10.11 (Capitan) und ich musste auf 10.12 (Sierra) upgraden, um das Problem lösen zu können
Aus meiner Erfahrung würde ich daher empfehlen, mindestens vor der Installation von pytorch 1.1 und libomp auf Sierra zu aktualisieren (ich verwende pip und brew für alle Installationen).
neue Binärdateien hochgeladen, die die Abhängigkeit von libomp.dylib
remove entfernen
Jetzt bekomme ich clang: error: unsupported option '-fopenmp'
Fehler.
@sukuya Das klingt nach einem anderen Problem, da es so klingt, als würden Sie versuchen, PyTorch selbst zu kompilieren, aber dieses Problem betraf ein Problem mit den vorkompilierten Binärdateien.
Dieses Problem ist immer noch in Fackel 1.1.0.post2 vorhanden. Wissen Sie, wann der Fix in der stabilen Version verfügbar sein wird?
@torrmal Wie stellen Sie sicher, dass Sie 1.1.0.post2 verwenden? In meinen Tests haben die Änderungen von 1.1.0.post2 dieses Problem vollständig behoben, daher frage ich mich, ob Sie eine 1.1.0 non-post2 irgendwo herumliegen haben, die versehentlich mitgenommen wird.
@sukuya Das klingt nach einem anderen Problem, da es so klingt, als würden Sie versuchen, PyTorch selbst zu kompilieren, aber dieses Problem betraf ein Problem mit den vorkompilierten Binärdateien.
@alex-xnor Ich habe ein c++-Programm kompiliert, das vorgefertigte libtorch
und ich erhalte diese Fehler.
@sukuya können Sie eine neue Ausgabe mit weiteren Details zu Ihrem Problem
brew install libomp
löst das Problem.
Thx Bruder, ich habe mein Problem gelöst
Hat jemand einen Vorschlag, wenn brew install libomp nicht funktioniert? Ich habe neu installiert, neu verlinkt, aber ohne Erfolg.
setze das ins Terminal, hoffe es funktioniert. Ich habe 2 Stunden gebraucht, um das Problem zu beheben, und ich hoffe, Sie können es schneller beheben, jeeez...
install_name_tool -change @rpath/libc++.1.dylib /usr/lib/libc++.1.dylib /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/_cvxcore.cpython-37m- darwin.so
Hilfreichster Kommentar
brew install libomp
löst das Problem.