解决:python调用pyside找不到dll load failed问题

博客讲述了在使用pip安装PySide2后遇到的ImportError问题,详细描述了尝试的解决方法,包括检查和匹配版本、先导入pyside2相关包以及安装pyqt5。最终通过确保pyside2和pyqt5版本一致解决了DLL加载失败的问题。建议检查包版本和依赖,并以管理员权限安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 首先说明一下我遇到的问题:
    采用pip install pyside2安装最新版本,运行.py文件提示ImportError: DLL load failed: 找不到指定的模块

  2. 解决方法尝试:

    1. 网上第一种解决办法(这个是文章最多的):说可能安装的包不完整,卸载掉已安装的,然后换版本安装,网上大部分文章换了 5.14. ∗ 5.14.* 5.14.这个版本,但是目前好像不支持14版本了,最小的为 15.1 15.1 15.1版本,因此我先尝试换了 15.1 15.1 15.1版本,还是没有解决问题。
      此处注意卸载的时候同时卸载pyside2shiboken2这两个包,不然卸掉pyside2后另一个版本不会变,可能导致版本不匹配。

      我用这个没有解决问题,依然会提示找不到dll的问题,然后断点调试,只导入pyside2相关的包是可以的,但是运行整个文件则不行。因此介绍第二个方法。

    2. 解决办法二:把pyside2相关的包放在前边导入,这个因该可以解决掉一部分问题

      对于我的文件,因为前边要依赖其他包,因此不能只把相关包放最前边,因此需要再找办法。

    3. 断点调试发现pyside2中会导入pyqt5qtcore,找不到dll就是在这一步报错的,因此我安装了pyqt5,但是依然没有解决问题。结合第一种情况,可能是版本不对。对于pyside2的版本是 5.15.1 5.15.1 5.15.1,因此将pyqt5的版本与之对应,也安装 5.15.1 5.15.1 5.15.1的版本。

      这种方法解决了dll报错的问题

    可以综上三种方法解决问题,主要检查版本对应问题,以及重装包的时候注意卸载依赖包。还有install的时候可能存在由于权限导致的安装不完整问题,在启动prompt的时候用管理员方式运行

### PySide6 导入时出现的 DLL 加载失败解决方案 当使用 PyInstaller 将基于 PySide6 的应用程序打包成可执行文件 (EXE),并在 Windows 7 上运行时报 `ImportError: DLL load failed` 错误,这通常是因为缺少必要的动态链接库 (DLLs) 或者环境配置不正确。 #### 环境准备与依赖管理 确保开发环境中 PythonPySide6 版本兼容。对于 PySide6 来说,最低支持的 Python 版本为 3.6 及以上版本;特别注意的是,如果使用 Python 3.8,则应至少使用 Python 3.8.1 或更高版本[^5]。 #### 安装 Visual C++ Redistributable 许多情况下,此错误源于未安装 Microsoft Visual C++ Redistributable 库。这些库包含了 PySide6 运行所需的多个重要组件。建议下载并安装适用于所使用的 Python 编译器对应的 VCRedist 版本。 #### 使用虚拟环境隔离项目依赖 创建一个新的虚拟环境来避免与其他项目的包冲突,并通过 pip 工具重新安装最新的 PySide6 包: ```bash python -m venv myenv myenv\Scripts\activate.bat pip install --upgrade pip setuptools wheel pip install pyside6 ``` #### 修改 spec 文件以包含隐藏导入项 有时某些模块不会被自动检测到而需手动添加至 `.spec` 文件中的 `hiddenimports` 列表里。可以通过命令行参数 `-p|--paths` 添加额外路径或将特定模块显式加入 hidden imports 中: ```python a = Analysis( ['your_script.py'], pathex=[], binaries=[], datas=[], hiddenimports=['shiboken6', 'PySide6.support'], # Add necessary modules here. hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, ) ``` #### 复制缺失的 DLL 至输出目录 如果经过上述操作仍存在个别 DLL失败的情况,可以尝试定位问题所在的具体 DLL 并将其复制到最终 EXE 输出所在的同一级目录下。常见的做法是从 Anaconda 或 Miniconda 安装位置到所需 DLL 后拷贝过来。 #### 更新 PyInstaller 版本 保持 PyInstaller 是最新版有助于减少因工具本身缺陷引起的问题。可通过以下方式更新 PyInstaller: ```bash pip install --upgrade pyinstaller ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值