Pytorch: Ich kann PyTorch nicht importieren, libomp.dylib kann nicht geladen werden.

Erstellt am 1. Mai 2019  ·  27Kommentare  ·  Quelle: pytorch/pytorch

🐛 Fehler

Ich habe versucht, PyTorch zu installieren, kann es aber nicht verwenden. Die dynamische Bibliothek libomp.dylib kann nicht verknüpft werden

Fortpflanzen

Schritte zum Reproduzieren des Verhaltens:

  1. pipenv installieren Taschenlampe Torchvision
  2. 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

Erwartetes Verhalten

PyTorch verwenden und importieren können

Umfeld

  • PyTorch-Version (zB 1.0): 1.1.0
  • Betriebssystem (z. B. Linux): Mac OS Mojave
  • Wie Sie PyTorch installiert haben ( conda , pip , Quelle): pipenv
  • Python-Version: 3.7.1
high priority binaries build triaged

Hilfreichster Kommentar

brew install libomp löst das Problem.

Alle 27 Kommentare

brew 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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen