You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行PyQt5代码出现undefined symbol错误,求解决方法

解决PyQt5导入时出现undefined symbol: _ZdlPvm, version Qt_5的错误

问题复现

在Ubuntu 20.04系统的Python 3.9虚拟环境中,安装PyQt5 5.15.7后,导入QtWidgets等模块时出现以下错误:

Traceback (most recent call last):
File "/home/Projects/sniptest/src/multisnip.py", line 36, in
from PyQt5 import QtWidgets, QtCore, QtGui
ImportError: /home/me/anaconda3/envs/sniptest/lib/python3.9/site-packages/PyQt5/QtWidgets.abi3.so: undefined symbol: _ZdlPvm, version Qt_5

解决方案

该错误本质是PyQt5预编译二进制文件与系统Qt库版本不兼容,或虚拟环境内PyQt5安装不完整导致,可按以下步骤解决:

  • 彻底卸载并重装PyQt5及依赖
    先完全移除当前环境中的PyQt5和关联的sip库:

    pip uninstall -y PyQt5 PyQt5-sip
    

    重新安装对应版本的PyQt5,让pip自动匹配兼容的sip版本:

    pip install PyQt5==5.15.7
    

    如果问题依旧,可尝试降级到更适配Ubuntu 20.04默认Qt 5.12.x的PyQt5版本,比如5.15.4:

    pip install PyQt5==5.15.4
    
  • 排查系统Qt库干扰
    检查环境变量是否包含系统级Qt库路径,可能导致虚拟环境内的PyQt5调用了不兼容的系统库:

    echo $LD_LIBRARY_PATH
    

    如果输出中有系统Qt的路径(比如/usr/lib/x86_64-linux-gnu/qt5/lib),可临时移除该路径后再运行代码:

    unset LD_LIBRARY_PATH
    python /home/Projects/sniptest/src/multisnip.py
    
  • 从源码编译PyQt5(备选方案)
    如果上述方法无效,可尝试从源码编译适配系统Qt的PyQt5:

    1. 安装编译依赖:
      sudo apt-get install build-essential qt5-default python3-dev
      
    2. 下载对应版本的PyQt5源码,解压后进入目录执行:
      python configure.py --confirm-license
      make -j$(nproc)
      sudo make install
      

    注意:此方法耗时较长,仅作为最后尝试。

内容的提问来源于stack exchange,提问作者Cookie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:50:36