页次: 1
我用pip 安装了PySide6,在使用时,会出现下面的报错:
from PySide6 import QtCore
ImportError: /home/duck/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6: undefined symbol: _ZN9QMetaType14registerHelperEPKN9QtPrivate18QMetaTypeInterfaceE, version Qt_6
我的理解是debian的QT6环境没有装好,缺少头文件。但是不知道该装什么包。
谢谢!
离线
你的 PySide6 与你的 Qt6 版本不匹配。推测是你的 Qt6 更新之后,没有重新编译 PySide6 导致的。
离线
谢谢依云大大。
QT6是用apt装的,装完后用pip安装的PySide6,如何重新编译PySide6呢?
离线
这我就不知道了……
离线
可以试试
ldd /home/duck/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6
看一下动态链接到哪里去了?或者debian 12有没有system-wide的python-pyside包,也许pip安装的和system 的lib对不上也说不定
离线
谢谢!
ldd 的结果是正常的.
ldd -r 会显示许多undefined symbol,例如:
undefined symbol: PyTuple_GetItem (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: PyUnicode_Concat (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: Py_IsInitialized (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: _ZN8Shiboken10ObjectType15getTypeUserDataEP11_typeobject (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: InitSignatureStrings (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: PyUnicode_AsUTF8String (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: PyUnicode_FromStringAndSize (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: _ZN8Shiboken11PyMagicName3docEv (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: PyDict_Clear (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: _ZN8Shiboken11PyMagicName4funcEv (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
undefined symbol: _ZN8Shiboken6PyName6f_codeEv (/home/yibo/.local/lib/python3.11/site-packages/PySide6/libpyside6.abi3.so.6.6)
奇怪的是python的报错里的那个undefined symbol 并不在ldd -r 的显示结果里.
debian的包还是python3-pyside2,不知道是不是太低了。
我在网上查到有人报告这个bug,感觉跟我遇到的情况一样。
https://bugreports.qt.io/browse/PYSIDE-1950
离线
Python 的符号找不到是正常的,shiboken 的不确定。
离线
涉及到python的非系统软件,建议用非系统的python,可以自己编译,也可以使用anaconda。
编译安装了新的python后,用新环境创建虚拟环境,在虚拟环境里用pip安装PySide6。
如果要删除,直接删除这个虚拟环境就行。
May the force be with you.
离线
页次: 1