ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/

本文记录了在Mac上新安装PyTorch后遇到的ImportError: dlopen问题,详细介绍了问题产生的原因及解决步骤,包括执行特定的查询命令和根据Python版本安装相应依赖。
部署运行你感兴趣的模型镜像

前言

最近用mac新装了pytorch遇到标题的问题,查了一下相关解决方案,成功解决,但有一些需要注意的点,这里做一下记录。

问题产生

此问题大多是在pytorch安装之后,尝试import torch报出的,如下图:

在这里插入图片描述

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/torch/_C.cpython-38-darwin.so, 2): Library not loaded: @rpath/libc++.1.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/torch/_C.cpython-38-darwin.so

问题解决

百度直接按问题搜索了一下解决办法,找到了一篇可行的文章
但该文章中有一些细节没有注意给出,这里强调一下。

主要执行两个命令:

  • 查询otool

    otool -L /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/torch/_C.cpython-37m-darwin.so
    

    这里需要注意一点,这个命令是跟你的python版本相关的,因此后半部分不能直接复制上面的命令内容,需根据自己python版本进行修改。

    • 回到报错的代码上,发现类似语句,将其复制
      在这里插入图片描述

      例如我是python3.8,所以我应该将otool -L后面的代码修改为/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/torch/_C.cpython-38-darwin.so

    运行之后会有如下输出:
    在这里插入图片描述

  • 安装tool

    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/torch/_C.cpython-37m-darwin.so
    

    此处也需要注意python版本,将后半部分根据自己情况修改。

上面两条命令执行过后一般就解决了。

参考资料

  • https://blog.youkuaiyun.com/qq_41024144/article/details/105742035

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

(.venv) rui@RuideMacBook-Pro zyzs_back % python3 manage.py runserver 0.0.0.0:8000 Exception in thread django-main-thread: Traceback (most recent call last): File "/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 15, in <module> import MySQLdb as Database File "/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/MySQLdb/__init__.py", line 17, in <module> from . import _mysql ImportError: dlopen(/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/MySQLdb/_mysql.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace &#39;_mysql_affected_rows&#39; The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner self.run() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run autoreload.raise_last_exception() File "/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception raise _exception[1] File "/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 394, in execute autoreload.check_errors(django.setup)() File "/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "/Users/rui/myproject/zyzs_back/.venv/lib/python3.9/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS)
最新发布
09-28
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值