Pytorch: No puedo importar PyTorch, no se puede cargar libomp.dylib.

Creado en 1 may. 2019  ·  27Comentarios  ·  Fuente: pytorch/pytorch

🐛 Error

Intenté instalar PyTorch, pero no puedo usarlo. No puede vincular la biblioteca dinámica libomp.dylib

Reproducir

Pasos para reproducir el comportamiento:

  1. pipenv instalar antorcha antorcha
  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

Comportamiento esperado

Poder usar e importar PyTorch

Medio ambiente

  • Versión de PyTorch (por ejemplo, 1.0): 1.1.0
  • SO (p. Ej., Linux): Mac OS Mojave
  • Cómo instaló PyTorch ( conda , pip , fuente): pipenv
  • Versión de Python: 3.7.1
high priority binaries build triaged

Comentario más útil

brew install libomp resuelve el problema.

Todos 27 comentarios

brew install libomp resuelve el problema.

cc @JerryShih

cc @ pjh5 @kostmo

brew install libomp resuelve el problema.

@ezyang
¿Cómo agregar la dependencia libomp en la instalación de pytorch pip?

¿Se respaldarán todas las bibliotecas dependientes de pytorch en el paquete de rueda?
Si es así, agregaré los archivos libomp como este código: https://github.com/pytorch/pytorch/blob/2356fac9a5205a2e11f1abf6105fdb3124246d41/setup.py#L738 -L825

¿Qué hay de otras bibliotecas dependientes? ¿Están todos en la carpeta third_party y se han creado a partir de la fuente?

pip no sabe nada sobre brew, no puedes pedirle que brew instale un paquete. Además, aunque esta resolución "resuelve" el problema, me encantaría comprender mejor cómo surgió esta dependencia (en particular, ¿por qué estamos construyendo binarios con una dependencia de bibliotecas brew? Eso suena mal).

En algunos casos en los que no podemos asumir que los usuarios finales tienen una biblioteca instalada, distribuimos la biblioteca con nuestros binarios. Sin embargo, no estoy seguro de que debamos hacer esto para libomp.dylib. cc @soumith

esto es algo que debe arreglarse. Puedo echar un vistazo a corregir binarios y volver a cargarlos.
El problema es que nuestro CI de macos instala libomp aquí: https://github.com/pytorch/pytorch/blob/0da0c4be48c675d61c39b4554131e1dbe9177cab/.circleci/verbatim-sources/header-section.yml#L294 , creo que para CI / testing. Pero las compilaciones binarias también lo recogen y lo usan.

Puedo eliminar esta dependencia para los binarios. Publicaré un PR pronto

brew install libomp resuelve el problema
esto resuelve mi problema

Estoy de acuerdo con @ezyang en que una instalación de pytorch a través de pip no debería depender de la preparación. PyTorch es una dependencia para mi biblioteca y mis usuarios pueden o no tener / preocuparse por brew.

  • Entonces, solo para aclarar, la solución fue eliminar el brew install libomp step && empaquetar correctamente las bibliotecas específicas de la plataforma de libomp (.dylib, .so, etc.). ¿Es eso correcto?

  • Si quisiera tomar lo último cada noche con esta solución ... ¿sería un pip install torch_nightly -f blah.html ?

@ruohoruotsi todo eso es correcto

Solo como referencia: si usa macports, el problema se puede solucionar creando un enlace simbólico usando sudo ln -s /opt/local/lib/libomp/libomp.dylib en /usr/local/opt/libomp/lib/ .

Solo como referencia: si usa macports, el problema se puede solucionar creando un enlace simbólico usando sudo ln -s /opt/local/lib/libomp/libomp.dylib en /usr/local/opt/libomp/lib/ .

el problema debe solucionarse desde PyTorch buscando bibliotecas desde el sistema en lugar de solo verificar / usr / local / opt /

brew install libomp resuelve el problema.

¡Funciona!

al intentar actualizar pytorch de 1.0.1 a 1.1, encontré el mismo problema y encontré este hilo

la actualización en el servidor linux funcionó bien pero no en mi macbook (OSX)

Intenté brew install libomp pero no se pudo encontrar la fórmula de brew, por lo tanto, esto no solucionó el problema y tuve que volver a la versión 1.0.1 en OSX para poder importar la antorcha nuevamente.

¿Alguien tuvo el mismo problema con respecto a la instalación pip de pytorch y la instalación brew de libomp?

@herrero

Puedo echar un vistazo a corregir binarios y volver a cargarlos.

¿Todavía hay algún plan para hacer esto, o las nuevas versiones binarias esperarán la próxima versión de PyTorch?

al intentar actualizar pytorch de 1.0.1 a 1.1, encontré el mismo problema y encontré este hilo

la actualización en el servidor linux funcionó bien pero no en mi macbook (OSX)

Intenté brew install libomp pero no se pudo encontrar la fórmula de brew, por lo tanto, esto no solucionó el problema y tuve que volver a la versión 1.0.1 en OSX para poder importar la antorcha nuevamente.

¿Alguien tuvo el mismo problema con respecto a la instalación pip de pytorch y la instalación brew de libomp?

Primero debe instalar la preparación, ir al sitio de preparación y seguir las instrucciones de instalación.

gracias por su respuesta, tenía instalado brew pero no estaba lo suficientemente actualizado
así que actualicé todo y ahora funciona

nota para otros usuarios, cuando hice la instalación de libomp, se completó pero otras aplicaciones ya no funcionaron (Spyder IDE); en este momento mi sistema operativo todavía era 10.11 (Capitan) y tuve que actualizar a 10.12 (Sierra) para poder resolver el problema

así que desde mi experiencia, recomendaría actualizar a Sierra al menos antes de instalar pytorch 1.1 y libomp (uso pip and brew para todas las instalaciones)

subió nuevos binarios que eliminan la dependencia en libomp.dylib

Ahora obtengo el error clang: error: unsupported option '-fopenmp' .

@sukuya Eso suena como un problema diferente, ya que parece que está intentando compilar PyTorch usted mismo, pero este problema se refería a un problema con los binarios precompilados.

este problema aún está presente en Torch 1.1.0.post2, ¿sabe cuándo estará disponible la solución en la versión estable?

@torrmal ¿Cómo se asegura de que está utilizando 1.1.0.post2? En mis pruebas, los cambios introducidos por 1.1.0.post2 solucionaron este problema por completo, así que me pregunto si tiene un 1.1.0 non-post2 por ahí que se detecta inadvertidamente.

@sukuya Eso suena como un problema diferente, ya que parece que está intentando compilar PyTorch usted mismo, pero este problema se refería a un problema con los binarios precompilados.

@ alex-xnor Estaba compilando un programa en C ++ que usaba libtorch preconstruidos y obtengo esos errores.

@sukuya, ¿puedes hacer un nuevo número con más detalles sobre tu problema? En particular, ¿puede incluir el cmake / makefile que está ejecutando y el comando del compilador que está usando?

brew install libomp resuelve el problema.

Gracias hermano, resolví mi problema

¿Alguien tiene alguna sugerencia para cuando brew install libomp no funciona? Lo he reinstalado, vuelto a vincular, pero fue en vano.

poner esto en la terminal, espero que funcione. Me tomó 2 horas arreglar esto y espero que puedas arreglarlo más rápido, 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

¿Fue útil esta página
0 / 5 - 0 calificaciones