Tentei instalar o PyTorch, mas não consigo usar. Ele não pode vincular a biblioteca dinâmica libomp.dylib
Passos para reproduzir o comportamento:
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
Ser capaz de usar e importar PyTorch
conda
, pip
, fonte): pipenvbrew install libomp
resolve o problema.
cc @JerryShih
cc @ pjh5 @kostmo
brew install libomp
resolve o problema.
@ezyang
Como adicionar a dependência libomp na instalação do pytorch pip?
Todas as bibliotecas dependentes de pytorch serão incluídas no pacote wheel?
Em caso afirmativo, adicionarei os arquivos libomp como este código: https://github.com/pytorch/pytorch/blob/2356fac9a5205a2e11f1abf6105fdb3124246d41/setup.py#L738 -L825
E quanto a outras bibliotecas dependentes? Eles estão todos na pasta third_party e construídos a partir da fonte?
pip não sabe nada sobre cerveja, você não pode pedir a ele para instalar um pacote de cerveja. Além disso, embora esta resolução "resolva" o problema, eu adoraria entender melhor como essa dependência surgiu (em particular, por que estamos criando binários com uma dependência de bibliotecas de cerveja? Isso soa mal.)
Em alguns casos em que não podemos presumir que os usuários finais tenham uma biblioteca instalada, distribuímos a biblioteca com nossos binários. No entanto, não tenho certeza se devemos fazer isso para libomp.dylib. cc @soumith
isso é algo que precisa ser consertado. Posso dar uma olhada em como consertar binários e reenviar.
O problema é que nosso macos CI instala o libomp aqui: https://github.com/pytorch/pytorch/blob/0da0c4be48c675d61c39b4554131e1dbe9177cab/.circleci/verbatim-sources/header-section.yml#L294 , Acho que para CI / testes. Mas as compilações binárias também o pegam e usam.
Posso remover essa dependência dos binários. Eu vou colocar um PR em breve
brew install libomp resolve o problema
isso resolve meu problema
Eu concordo com @ezyang que uma instalação do pytorch via pip não deve depender da fermentação. PyTorch é uma dependência da minha biblioteca e meus usuários podem ou não ter / se importar com o brew.
Portanto, apenas para esclarecer, a solução foi remover o brew install libomp
step && empacotar corretamente as bibliotecas específicas da plataforma de libomp (.dylib, .so, etc)? Isso é correto?
Se eu gostaria de pegar o último noturno com esta correção ... seria pip install torch_nightly -f blah.html
?
@ruohoruotsi tudo isso está correto
Apenas para referência: se estiver usando macports, o problema pode ser contornado criando um link simbólico usando sudo ln -s /opt/local/lib/libomp/libomp.dylib
em /usr/local/opt/libomp/lib/
.
Apenas para referência: se estiver usando macports, o problema pode ser contornado criando um link simbólico usando
sudo ln -s /opt/local/lib/libomp/libomp.dylib
em/usr/local/opt/libomp/lib/
.
o problema deve ser corrigido no PyTorch procurando por bibliotecas no sistema em vez de apenas verificar / usr / local / opt /
brew install libomp
resolve o problema.
Funciona!
ao tentar atualizar o pytorch de 1.0.1 para 1.1, encontrei o mesmo problema e encontrei este tópico
a atualização no servidor Linux funcionou bem, mas não no meu macbook (OSX)
Eu tentei brew install libomp, mas a fórmula brew não foi encontrada, portanto, isso não corrigiu o problema e eu tive que fazer o downgrade para 1.0.1 no OSX para poder importar a tocha novamente
Alguém teve o mesmo problema em relação à instalação do pip do pytorch e à instalação do brew do libomp?
@soumith
Posso dar uma olhada em como consertar binários e reenviar.
Ainda existe algum plano para fazer isso ou os novos lançamentos binários vão esperar pelo próximo lançamento do PyTorch?
ao tentar atualizar o pytorch de 1.0.1 para 1.1, encontrei o mesmo problema e encontrei este tópico
a atualização no servidor Linux funcionou bem, mas não no meu macbook (OSX)
Eu tentei brew install libomp, mas a fórmula brew não foi encontrada, portanto, isso não corrigiu o problema e eu tive que fazer o downgrade para 1.0.1 no OSX para poder importar a tocha novamente
Alguém teve o mesmo problema em relação à instalação do pip do pytorch e à instalação do brew do libomp?
Você precisa instalar o brew primeiro, vá ao site do brew e siga as instruções de instalação.
obrigado pela sua resposta, eu tinha o brew instalado, mas não era o suficiente atualizado
então eu atualizei tudo e agora funciona
observação para outros usuários, quando eu fiz a instalação do libomp, ele passou, mas outros aplicativos não funcionaram mais (Spyder IDE); neste momento meu SO ainda era 10.11 (Capitan) e tive que fazer um upgrade para 10.12 (Sierra) para poder resolver o problema
então, por experiência própria, eu recomendaria atualizar para o Sierra pelo menos antes de instalar o pytorch 1.1 e libomp (eu uso pip e brew para todas as instalações)
carregou novos binários que removem a dependência de libomp.dylib
Agora recebo o erro clang: error: unsupported option '-fopenmp'
.
@sukuya Isso soa como um problema diferente, já que parece que você está tentando compilar o PyTorch sozinho, mas esse problema dizia respeito a um problema com os binários pré-compilados.
esse problema ainda está presente na tocha 1.1.0.post2, você sabe quando a correção estará disponível na versão estável?
@torrmal Como você tem certeza de que está usando 1.1.0.post2? Em meus testes, as alterações introduzidas por 1.1.0.post2 corrigiram esse problema completamente, então eu me pergunto se você tem um 1.1.0 não post2 em algum lugar que foi pego inadvertidamente.
@sukuya Isso soa como um problema diferente, já que parece que você está tentando compilar o PyTorch sozinho, mas esse problema dizia respeito a um problema com os binários pré-compilados.
@ alex-xnor Eu estava compilando um programa c ++ que usava libtorch
pré-construído e recebo esses erros.
@sukuya você pode criar um novo problema com mais detalhes sobre o seu problema? Em particular, você pode incluir o cmake / makefile que está executando e o comando do compilador que está usando?
brew install libomp
resolve o problema.
Obrigado mano eu resolvi meu problema
Alguém tem alguma sugestão para quando o brew install libomp não funcionar? Eu reinstalei, revinculei, mas sem sucesso.
coloque isso no terminal, espero que funcione. Levei 2 horas para consertar isso e espero que você consiga consertar mais rápido, caramba ...
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
Comentários muito úteis
brew install libomp
resolve o problema.