Как вы решаете: PySide2/designer: ошибка поиска символа: ...: неопределенный символ: _ZdlPvm, версия Qt_5?
В Ubuntu 22.04, используя Python 3.10.4, я настроил PyCharm Community Edition 2022.01 для использования дизайнера PySide2 (Qt) в качестве внешнего инструмента. Когда я нажимаю кнопку «создать», возникает эта ошибка, и процесс завершается. Подобные отчеты за последние 6 лет и 6 месяцев у меня не работали, а для PySide2 требуется специальный патч для работы с Python3.10.4.
Во внешнем инструменте PyCharm QtDesigner5 запрограммируйте venv_dir/bin/pyside2-designer, рабочий каталог $ProjectFileDir$. Я установил галочки Синхронизировать файлы после выполнения и Открыть консоль для вывода инструмента.
В качестве дополнительной информации. PySide2 был собран из исходников инструмента обслуживания Qt версии 5.15.2, и для ветки pyside-setup установлено значение 5.15. Все следы pyside2 и shiboken2 ранее были безопасно удалены из системы Ubuntu, так как они вызывают многочисленные ошибки. Внесено одно изменение в исходники: https://bugzilla.redhat.com/show_bug.cgi?id=2025599 (спасибо Петр Викторин 21-01-2022 16:46:48 UTC). Очистите «bdist_wheel» и «установите». Это не влияет на PySide6 (6.3.0), который работает без проблем.
1 ответ
Я заметил, что дата двоичного файла «дизайнер» была 8 ноября 2021 года, и, в отличие от PySide6, PySide2, похоже, не полностью перестраивал qttools, который включает «дизайнер». Как только я локально создал «конструктор» из источника инструмента обслуживания Qt «Qt/5.15.2/Src/qttools», установив среду сборки Qt на 5.15, используя
qmake qttools.pro
,
make -j4
и установлен локально в «Qt/5.15.2/gcc_64/bin/designer», сообщение об ошибке исчезло, и «дизайнер» заработал, как и ожидалось. Я думаю, что сообщение об ошибке могло быть вызвано какими-то различиями в настройках компилятора C++. Кроме того, по какой-то причине PySide2, в отличие от PySide6, встраивается в одноименные сайт-пакеты, не включает папку Qt, в которой есть папки lib, libexec, plugins, qml, resources и translations. Возможно, это наследие совместимости, поскольку оба пакета созданы из разных веток pyside-setup.
Для настроек PySide2 во внешнем инструменте PyCharm QtDesigner5, программа Qt/5.15.2/gcc_64/bin/designer, рабочий каталог $ProjectFileDir$. Я установил галочки Синхронизировать файлы после выполнения и Открыть консоль для вывода инструмента.
Немного отличается для PySide6. Во внешнем инструменте PyCharm QtDesigner6(используя мою виртуальную среду Python3.10.4 venv) запрограммируйте venv_dir/bin/pyside6-designer, рабочий каталог $ProjectFileDir$. Я установил галочки Синхронизировать файлы после выполнения и Открыть консоль для вывода инструмента.