Ubuntu 23.10中PyQT6通过apt可用但虚拟环境pip安装报错
解决Ubuntu 23.10虚拟环境中PyQt6导入错误问题
解决方案一:让虚拟环境复用系统安装的PyQt6
- 删除当前有问题的虚拟环境:
rm -rf venv - 创建允许访问系统site-packages的虚拟环境:
python3 -m venv venv --system-site-packages - 激活虚拟环境:
source venv/bin/activate - 此时运行你的
myapp.py即可正常显示窗口,虚拟环境会直接复用apt安装的稳定版PyQt6。
解决方案二:重新安装适配的PyQt6版本
如果想完全用pip管理虚拟环境依赖,按以下步骤操作:
- 激活虚拟环境后,卸载现有PyQt6及关联组件:
pip uninstall -y PyQt6 PyQt6-Qt6 - 清理pip缓存,避免残留旧版本文件:
pip cache purge - 查看系统apt安装的PyQt6版本,确保pip安装版本与之匹配:
apt show python3-pyqt6 | grep Version - 安装对应版本的PyQt6(假设查到版本为
6.5.1):pip install PyQt6==6.5.1 - 运行
python myapp.py验证是否正常。
解决方案三:强制使用预编译的平台适配wheel包
部分场景下pip会默认安装源码编译版本,导致符号链接问题,可强制使用预编译wheel:
pip install --only-binary :all: PyQt6
错误原因说明
出现undefined symbol: _ZN14QReadWriteLock16destroyRecursiveEP21QReadWriteLockPrivate, version Qt_6_PRIVATE_API错误,是因为pip安装的PyQt6依赖的Qt库尝试调用系统Qt的私有符号,而这些符号在pip提供的Qt运行时中不存在,本质是版本或编译环境不兼容导致的链接问题。
内容的提问来源于stack exchange,提问作者hvitol
相关产品推荐
相关产品推荐

