Qt Designer 使用 Python 3.5 而不是 Python 3.7
Posted
技术标签:
【中文标题】Qt Designer 使用 Python 3.5 而不是 Python 3.7【英文标题】:Qt Designer using Python 3.5 instead of Python 3.7 【发布时间】:2018-07-02 22:44:03 【问题描述】:我正在使用通过 PyQt5 在 python 3 上编写的 Qt Designer 的自定义小部件,我必须使用需要更新的 sip API 的资源文件,但为了做到这一点,我必须更新我的 python。
我在 ubuntu 16.04 LTS 上,所以我刚刚从 python.org 下载了 python,就是这样,一切都顺利进行,如果我在 bash 中使用“python3”命令,我设法安装 python 3.7 没有问题python 3.7 环境运行良好。
但是当我执行 Qt Designer 时,我收到以下错误:
Traceback (most recent call last):
File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/QRoundProgressBarplugin.py", line 3, in <module>
from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/analogclockplugin.py", line 26, in <module>
from PyQt5.QtGui import QIcon, QPixmap
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/counterplugin.py", line 3, in <module>
from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/ledplugin.py", line 3, in <module>
from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/manometerplugin.py", line 3, in <module>
from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/switchplugin.py", line 3, in <module>
from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/thermometerplugin.py", line 3, in <module>
from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
当然,如您所见,Qt Designer 使用的是 python 3.5 中的 lib,因此无法找到最新 PyQt5 (5.11) 上存在的符号 PySlice_AdjustIndices,但在 /usr/local/lib 我有 python3.5 和 python3.7 文件夹,每个文件夹都有一个 PyQt5 版本,但我真的不知道 Qt Designer 是如何指向该文件夹而不是 python3.7 文件夹的,知道怎么做吗?
而且,只是为了让它知道,很明显问题发生在 Qt Designer 加载 python 自定义小部件时,我真的不记得我的 libpyqt5.so(告诉设计师如何阅读的 C++ 小部件) python 小部件),但我在最近的 PyQt5 安装中找不到它,也许该插件指向该文件夹。
任何提示或帮助?
【问题讨论】:
你读过relevant pyqt docs吗? 是的,但是它没有说明要使用哪个lib文件夹,我猜它默认使用python3,也许如果我更改文件夹名称我会看到设计者的行为 它说:“PyQt5 在 Designer 的插件目录中安装了一个 C++ 插件”。显然这个插件必须与你使用的任何版本的 pyqt5 兼容。 是的,它是兼容的,我从河岸源构建了 PyQt5,并没有注意到它构建了插件,但是我找到了一个 .pro-in 文件,它似乎是插件的文件,也许我可以编译它,但即使 不,它是 not 兼容的:这就是您收到这些错误的原因。显然,它与 pyqt5 的错误版本相关联。 【参考方案1】:尝试在文件顶部插入:
import os,sys
sys.path.insert(1,'/usr/local/lib/python3.7/dist-packages')
在你的 python 文件的顶部;可以解决吗?
【讨论】:
以上是关于Qt Designer 使用 Python 3.5 而不是 Python 3.7的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 为 Qt Designer 自定义 Qt 小部件
为啥我必须将 Qt Designer 2.7 与 Python 2.7 一起使用?
在 Python 中使用 Qt Designer 接口实时读取串行数据
PySide2(Qt for Python)在 Linux 上的 Qt Designer 安装在哪里?