根据你的错误信息,出现 ImportError: DLL load failed while importing onnxruntime_pybind11_state 通常是 ONNX Runtime 的版本兼容性或系统环境配置问题。以下是综合搜索结果的解决方案及原因分析:


1. 更换 ONNX Runtime 版本

此错误常见于 ONNX Runtime 版本与当前 Python 环境或操作系统不兼容。

  • 原因:最新版本的 ONNX Runtime 可能与某些系统环境(如 Windows 的 DLL 依赖项)存在冲突。
  • 解决方案
    卸载当前版本并安装指定兼容版本(如 1.11.0 或 1.15.0):
    pip uninstall onnxruntime
    pip install onnxruntime==1.11.0  # 或 1.15.0
    
    注意:若使用 GPU 加速,需安装 onnxruntime-gpu 并确保 CUDA 版本匹配。

2. 检查 Python 环境与系统架构

  • 问题根源
    • Python 位数不匹配:32 位 Python 安装了 64 位 ONNX Runtime(或反之)。
    • 依赖项缺失:如 Visual C++ Redistributable 未安装。
  • 解决方案
    1. 确认 Python 为 64 位(适用于 Windows):
      python -c "import sys; print(sys.version)"
      
      输出中应包含 64 bit
    2. 安装 Visual C++ Redistributable(最新版)。

3. 修复 ONNX Simplifier 的依赖

onnxsim 依赖于 onnxruntimeonnx 的版本兼容性。

  • 操作步骤
    1. 升级 onnxsim 并安装匹配依赖:
      pip install --upgrade onnxsim onnx
      
    2. 若问题依旧,尝试通过源码安装 onnxsim
      pip install git+https://github.com/daquexian/onnx-simplifier
      
      参考的官方文档。

4. 检查环境与路径冲突

  • 潜在问题:多个 Python 环境导致包安装路径混乱。
  • 解决方案
    1. 使用虚拟环境隔离依赖:
      python -m venv myenv
      source myenv/bin/activate  # Linux/macOS
      myenv\Scripts\activate    # Windows
      pip install onnxruntime onnxsim
      
    2. 明确指定绝对路径执行命令:
      C:\Python310\python.exe -m onnxsim best.onnx best-sim.onnx
      
      参考的环境变量建议。

5. 特殊案例:CUDA 版本冲突

若使用 GPU 版 ONNX Runtime,需确保 CUDA 版本匹配(如 onnxruntime-gpu 1.11.0 需 CUDA 11.4)。

  • 查看 CUDA 版本:
    nvcc --version
    
  • 安装对应版本:
    pip install onnxruntime-gpu==1.11.0
    

总结步骤

  1. 优先尝试安装 onnxruntime==1.11.01.15.0
  2. 检查 Python 位数及系统依赖。
  3. 隔离环境或修复路径错误。
  4. 升级 onnxsim 或通过源码安装。

若仍报错,建议提供完整的 Python 版本、操作系统及 pip list 输出以供进一步排查。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐