我尝试安装 PyTorch,但无法使用它。 它无法链接动态库 libomp.dylib
重现行为的步骤:
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
conda
, pip
,来源):pipenvbrew install libomp
解决了这个问题。
抄送@JerryShih
cc @ pjh5 @kostmo
brew install libomp
解决了这个问题。
@ezyang
如何在pytorch pip安装中添加libomp依赖?
是否将所有 pytorch 依赖库都备份到 Wheel 包中?
如果是,我将添加像这些代码的 libomp 文件: https :
其他依赖库怎么样? 它们都在第三方文件夹中并从源代码构建吗?
pip 对 brew 一无所知,您不能要求它 brew 安装包。 此外,虽然这个决议“解决”了这个问题,但我很想更好地理解这种依赖是如何产生的(特别是,为什么我们要构建依赖于 brew 库的二进制文件?这听起来很糟糕。)
在某些情况下,我们不能假设最终用户安装了库,我们会随二进制文件一起分发库。 但是,我不确定我们是否应该为 libomp.dylib 执行此操作。 抄送@soumith
这是需要解决的问题。 我可以看看修复二进制文件并重新上传。
问题是我们的 macos CI 在此处安装了 libomp: https :
我可以删除二进制文件的这种依赖关系。 我会尽快发布 PR
brew install libomp 解决问题
这解决了我的问题
我同意@ezyang 的观点,即通过 pip 安装 pytorch 不应依赖于 brew。 PyTorch 是我的库的依赖项,我的用户可能会也可能不会/关心 brew。
所以只是为了澄清,解决方案是删除brew install libomp
步骤 && 正确打包 libomp (.dylib、.so 等)的平台特定库? 那是对的吗?
如果我想通过此修复程序获取最新的每晚……那将是pip install torch_nightly -f blah.html
吗?
@ruohoruotsi所有这些都是正确的
仅供参考:如果使用 macports,可以通过在/usr/local/opt/libomp/lib/
使用sudo ln -s /opt/local/lib/libomp/libomp.dylib
创建符号链接来解决该问题。
仅供参考:如果使用 macports,可以通过在
/usr/local/opt/libomp/lib/
使用sudo ln -s /opt/local/lib/libomp/libomp.dylib
创建符号链接来解决该问题。
应该通过查看库表单系统而不是仅检查 /usr/local/opt/ 来从 PyTorch 解决该问题
brew install libomp
解决了这个问题。
这行得通!
尝试将 pytorch 从 1.0.1 升级到 1.1 时,我遇到了同样的问题并找到了这个线程
linux 服务器上的更新运行良好,但不适用于我的 macbook (OSX)
我尝试了 brew install libomp 但找不到 brew 公式,因此这并没有解决问题,我不得不在 OSX 上降级到 1.0.1 才能再次导入火炬
有没有人对 pytorch 的 pip 安装和 libomp 的 brew 安装有同样的问题?
@苏米思
我可以看看修复二进制文件并重新上传。
是否仍然有任何计划这样做,或者新的二进制版本会等待下一个 PyTorch 版本吗?
尝试将 pytorch 从 1.0.1 升级到 1.1 时,我遇到了同样的问题并找到了这个线程
linux 服务器上的更新运行良好,但不适用于我的 macbook (OSX)
我尝试了 brew install libomp 但找不到 brew 公式,因此这并没有解决问题,我不得不在 OSX 上降级到 1.0.1 才能再次导入火炬
有没有人对 pytorch 的 pip 安装和 libomp 的 brew 安装有同样的问题?
您需要先安装 brew,然后转到brew 站点并按照安装说明进行操作。
感谢您的回复,我已经安装了 brew,但还不够最新
所以我更新了一切,现在它可以工作了
请注意其他用户,当我执行 brew install libomp 时,它通过了,但其他应用程序不再工作(Spyder IDE); 此时我的操作系统仍然是 10.11 (Capitan),我必须升级到 10.12 (Sierra) 才能解决问题
所以根据我的经验,我建议至少在安装 pytorch 1.1 和 libomp 之前升级到 Sierra(我使用 pip 和 brew 进行所有安装)
上传了删除对libomp.dylib
依赖的新二进制文件
现在我收到clang: error: unsupported option '-fopenmp'
错误。
@sukuya这听起来像是一个不同的问题,因为听起来您是在尝试自己编译 PyTorch,但这个问题与预编译的二进制文件有关。
这个问题仍然存在于 torch 1.1.0.post2 中,你知道这个修复什么时候会在稳定版本中可用吗?
@torrmal你如何确保你使用的是 1.1.0.post2? 在我的测试中,由 1.1.0.post2 引入的更改完全解决了这个问题,所以我想知道您是否有一个 1.1.0 非 post2 躺在某个地方无意中被捡起。
@sukuya这听起来像是一个不同的问题,因为听起来您是在尝试自己编译 PyTorch,但这个问题与预编译的二进制文件有关。
@alex-xnor 我正在编译一个使用预构建的 C++ 程序libtorch
并且我收到了这些错误。
@sukuya你能提出一个关于你的问题的更多细节的新问题吗? 特别是,您能否包含正在运行的 cmake/makefile 和正在使用的编译器命令?
brew install libomp
解决了这个问题。
Thx兄弟我已经解决了我的问题
有没有人对 brew install libomp 不起作用有什么建议? 我已经重新安装,重新链接,但无济于事。
把它放在终端中,希望它能工作。 我花了 2 小时来解决这个问题,我希望你能更快地解决它,天哪...
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-达尔文
最有用的评论
brew install libomp
解决了这个问题。