Pytorch: Je ne peux pas importer PyTorch, libomp.dylib ne peut pas être chargé.

Créé le 1 mai 2019  ·  27Commentaires  ·  Source: pytorch/pytorch

Bug

J'ai essayé d'installer PyTorch, mais je ne peux pas l'utiliser. Il ne peut pas lier la bibliothèque dynamique libomp.dylib

Reproduire

Étapes pour reproduire le comportement :

  1. pipenv installer torche 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

Comportement prévisible

Être capable d'utiliser et d'importer PyTorch

Environnement

  • Version PyTorch (par exemple, 1.0): 1.1.0
  • Système d'exploitation (par exemple, Linux) : Mac OS Mojave
  • Comment vous avez installé PyTorch ( conda , pip , source): pipenv
  • Version Python : 3.7.1
high priority binaries build triaged

Commentaire le plus utile

brew install libomp résout le problème.

Tous les 27 commentaires

brew install libomp résout le problème.

cc @JerryShih

cc @ pjh5 @kostmo

brew install libomp résout le problème.

@ezyang
Comment ajouter la dépendance libomp dans l'installation de pytorch pip?

Toutes les bibliothèques dépendantes de Pytorch seront-elles sauvegardées dans le package wheel ?
Si oui, j'ajouterai les fichiers libomp comme ce code : https://github.com/pytorch/pytorch/blob/2356fac9a5205a2e11f1abf6105fdb3124246d41/setup.py#L738 -L825

Qu'en est-il des autres bibliothèques dépendantes ? Sont-ils tous dans un dossier tiers et créés à partir de la source ?

pip ne connaît rien à brew, vous ne pouvez pas lui demander d'installer un paquet. De plus, bien que cette résolution "résolve" le problème, j'aimerais mieux comprendre comment cette dépendance est née (en particulier, pourquoi construisons-nous des binaires avec une dépendance aux bibliothèques de brassage ? Cela semble mauvais.)

Dans certains cas où nous ne pouvons pas supposer que les utilisateurs finaux ont une bibliothèque installée, nous distribuons la bibliothèque avec nos binaires. Cependant, je ne suis pas sûr que nous devrions le faire pour libomp.dylib. cc @soumith

c'est quelque chose qui doit être corrigé. Je peux jeter un œil à la réparation des binaires et au ré-upload.
Le problème est que notre macos CI installe libomp par ici : https://github.com/pytorch/pytorch/blob/0da0c4be48c675d61c39b4554131e1dbe9177cab/.circleci/verbatim-sources/header-section.yml#L294 , je pense pour CI/test. Mais les versions binaires le récupèrent également et l'utilisent.

Je peux supprimer cette dépendance pour les binaires. Je vais bientôt sortir un PR

brew install libomp résout le problème
cela résout mon problème

Je suis d'accord avec @ezyang qu'une installation de pytorch via pip ne devrait pas dépendre du brew. PyTorch est une dépendance de ma bibliothèque et mes utilisateurs peuvent ou non se soucier de l'infusion.

  • Donc, juste pour clarifier, la solution consistait à supprimer l'étape brew install libomp && correctement empaqueter les bibliothèques spécifiques à la plate-forme de libomp (.dylib, .so, etc) ? Est-ce exact?

  • Si je veux récupérer le dernier soir avec ce correctif... ce serait un pip install torch_nightly -f blah.html ?

@ruohoruotsi tout cela est correct

Juste pour référence : si vous utilisez macports, le problème peut être résolu en créant un lien symbolique en utilisant sudo ln -s /opt/local/lib/libomp/libomp.dylib dans /usr/local/opt/libomp/lib/ .

Juste pour référence : si vous utilisez macports, le problème peut être résolu en créant un lien symbolique en utilisant sudo ln -s /opt/local/lib/libomp/libomp.dylib dans /usr/local/opt/libomp/lib/ .

le problème devrait être résolu à partir de PyTorch en regardant le système de formulaires des bibliothèques au lieu de vérifier uniquement /usr/local/opt/

brew install libomp résout le problème.

Ça marche!

en essayant de mettre à niveau pytorch de 1.0.1 à 1.1, j'ai rencontré le même problème et j'ai trouvé ce fil

la mise à jour sur le serveur linux a bien fonctionné mais pas sur mon macbook (OSX)

J'ai essayé d'installer brew libomp mais la formule de brew n'a pas pu être trouvée, donc cela n'a pas résolu le problème et j'ai dû revenir à 1.0.1 sur OSX pour pouvoir importer à nouveau la torche

Quelqu'un a-t-il eu le même problème concernant à la fois l'installation pip de pytorch et l'installation brew de libomp ?

@soumith

Je peux jeter un œil à la réparation des binaires et au ré-upload.

Est-il toujours prévu de le faire ou de nouvelles versions binaires attendront-elles la prochaine version de PyTorch ?

en essayant de mettre à niveau pytorch de 1.0.1 à 1.1, j'ai rencontré le même problème et j'ai trouvé ce fil

la mise à jour sur le serveur linux a bien fonctionné mais pas sur mon macbook (OSX)

J'ai essayé d'installer brew libomp mais la formule de brew n'a pas pu être trouvée, donc cela n'a pas résolu le problème et j'ai dû revenir à 1.0.1 sur OSX pour pouvoir importer à nouveau la torche

Quelqu'un a-t-il eu le même problème concernant à la fois l'installation pip de pytorch et l'installation brew de libomp ?

Vous devez d'abord installer brew, aller sur le site de brew et suivre les instructions d'installation.

merci pour votre réponse, j'avais installé brew mais ce n'était pas assez à jour
alors j'ai tout mis à jour et maintenant ça marche

note pour les autres utilisateurs, lorsque j'ai installé libomp par brassage, cela a fonctionné mais les autres applications ne fonctionnaient plus (Spyder IDE) ; à ce moment, mon système d'exploitation était encore 10.11 (Capitan) et j'ai dû passer à 10.12 (Sierra) pour pouvoir résoudre le problème

donc d'après mon expérience, je recommanderais de passer à Sierra au moins avant d'installer pytorch 1.1 et libomp (j'utilise pip et brew pour toutes les installations)

mis en ligne de nouveaux binaires qui suppriment la dépendance sur libomp.dylib

Maintenant, j'obtiens clang: error: unsupported option '-fopenmp' erreur

@sukuya Cela ressemble à un problème différent, car il semble que vous essayez de compiler PyTorch vous-même, mais ce problème concernait un problème avec les binaires précompilés.

ce problème est toujours présent dans la torche 1.1.0.post2, savez-vous quand le correctif sera disponible sur la version stable ?

@torrmal Comment vous assurez-vous que vous utilisez la 1.1.0.post2 ? Lors de mes tests, les modifications introduites par la 1.1.0.post2 ont complètement résolu ce problème, je me demande donc si vous avez une version 1.1.0 non-post2 qui traîne quelque part et qui est récupérée par inadvertance.

@sukuya Cela ressemble à un problème différent, car il semble que vous essayez de compiler PyTorch vous-même, mais ce problème concernait un problème avec les binaires précompilés.

@alex-xnor Je compilais un programme c++ qui utilisait libtorch prédéfini et j'obtiens ces erreurs.

@sukuya pouvez-vous créer un nouveau numéro avec plus de détails sur votre problème ? En particulier, pouvez-vous inclure le cmake/makefile que vous exécutez et la commande du compilateur que vous utilisez ?

brew install libomp résout le problème.

Merci mon frère j'ai résolu mon problème

Quelqu'un a-t-il une suggestion pour savoir quand brew install libomp ne fonctionne pas? J'ai réinstallé, reconnecté, mais en vain.

mettre ceci dans le terminal, j'espère que cela fonctionne. Il m'a fallu 2 heures pour résoudre ce problème et j'espère que vous pourrez le réparer plus rapidement, bon sang...

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

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

Questions connexes

SeparateReality picture SeparateReality  ·  3Commentaires

eliabruni picture eliabruni  ·  3Commentaires

soumith picture soumith  ·  3Commentaires

szagoruyko picture szagoruyko  ·  3Commentaires

soumith picture soumith  ·  3Commentaires