[software development] Deepin 25系统下使用PyCharm写Qt程序
Tofloor
poster avatar
Feelup
deepin
2025-07-11 18:22
Author

glmos-code-explain

在 Deepin 25 下学习 Python 时,遇到了一些 Qt 程序运行的问题,此次做一下记录,方便后续有需要的人进行参考。

说明一下,为啥我不用 deepin-IDE 来学习Python呢?没别的,水平太菜,不会配置 deepin-IDE 使用 Python 的虚拟环境(折腾过了,实在是搞不定),deepin-IDE 也不会像 PyCharm 一样自动进行 Python 虚拟环境的配置,安装各种 Python 开发软件(如pygame)等太麻烦了。

为啥我要写 Qt 程序呢?其实也没啥,就是看的书恰好到了这里😂

image.png

都到这里了,那 Qt designer(Qt设计器) 得安装一个,当然了,从 qt.io 官网进行安装,尝试过,但失败了,没有继续纠结,在应用商店安装解决了(商店是真方便)

image.png

然后迅速的参考书上的内容写了一个简单的 Qt 程序界面,然后保存为了 “MyFirstGui.ui” 文件。嗯,你没看错,我画了一个按钮😁

image.png

要在 Python 中使用 Qt 画的程序界面,是需要 PyQt5 软件的,但该软件默认只能安装到 Python 虚拟环境中,无法在系统中使用 pip 进行安装

进入 PyCharm 创建的程序目录下,打开终端,

激活虚拟环境:

source .venv/bin/activate

执行如下命令安装 PyQt5

.venv/bin/python -m pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple

《小贴士》

问题1:.env 是什么?

.env 是之前在该目录下之前其它 Python 程序时,根据 Pycharm 的提示自动创建的虚拟环境目录。

问题2:为啥要写“.venv/bin/python -m”,而不是直接在 Pycharm 的终端或是 deepin 系统的终端中直接执行 "pip install PyQt5" 进行软件安装呢?

这个我也不是太明白呢。按理说,我在 Pycharm 的终端或是在 deepin 系统的终端中激活了该虚拟环境后,使用 pip 命令的话,应该会自动调用虚拟环境中的 Python 程序才对,但实际上我尝试了多次,发现调用的都是系统自带的 Python 程序,导致一直出现要在Python虚拟环境中才能安装的提示。

问题3:“-i https://pypi.tuna.tsinghua.edu.cn/simple” 是什么?

PyCharm 默认的仓库访问有点慢,所以我指定了安装时需要使用的仓库地址为清华的地址,安装速度很快哦。

安装完 PyQt5 之后,我写了如下程序,然后点击运行

image.png

嗯,报错了,报错内容如下

qt.qpa.plugin: Could not find the Qt platform plugin "dxcb" in ""
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

查了一下,在 Windows 系统下是不会出现该问题的,而是会顺利显示运行结果;

但是嘛,我使用的是 Linux,就一定会出现该问题。这是由于 Qt 平台插件路径配置问题导致的。

解决方法有两种

方法1:在源程序中直接指定插件路径

由于我是在 Python 虚拟环境中安装的 PyQt5,所以,插件路径也是在虚拟环境中的。下面代码中的路径就是我当前插件的绝对路径。

添加的代码

import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = '/media/nano/8f8caec4-d09c-4681-b0ba-cc2cbf764bc7/学院/练习册/Python语言/E-Coder/.venv/lib/python3.12/site-packages/PyQt5/Qt5/plugins'

image.png

方法2:直接编辑 ~/.bashrc 文件,在文件末尾添加环境变量

export QT_QPA_PLATFORM_PLUGIN_PATH="你的 Python 虚拟环境中 PyQt 插件的路径"

然后运行 source ~/.bashrc使更改生效。

注意:这个方法不太推荐哦,毕竟是全局的,以后你容易忘记它的存在,容易影响你写其它Qt程序; 最重要的是,这个只是逻辑上成立而已,我配置了,没有成功😂

指定了 Qt 平台插件的路径后,再次执行程序,Qt 程序窗口能顺利出现了。

image.png

至于最后终端窗口中的红色提示,这是一个 Qt 的警告信息(Warning),并不是错误(Error),所以程序仍然可以正常运行并退出。

qt.qpa.plugin: Could not find the Qt platform plugin "dxcb" in "/media/nano/.../PyQt5/Qt5/plugins"

对于该警告信息,我查询了一下,在 Linux 下,Qt 使用的插件实际是 “libqxcb.so”,该插件在目录下我也已经确认到了

image.png

而我运行程序后会看到 dxcb 的警告,根据查询到的信息,可能是如下原因导致的。

  • 某个环境变量被错误设置成了 dxcb
  • 或者某个配置文件里误写了该值;
  • 也有可能是之前尝试过某些调试设置后遗留下来的。

但我尝试了查询到的各种解决方案后,警告依旧存在。

哎,放弃了解决该警告问题了,反正程序已经能运行了,继续看书吧。

joy

补充:关于点击Qt程序运行后,终端中提示 【Could not find the Qt platform plugin "dxcb"】 的问题,可参考下面的帖子进行解决

链接:https://bbs.deepin.org/post/289980

Reply Favorite View the author
All Replies
流星追月
deepin
2025-07-11 20:49
#1

努力的,勤快的小鸟。

Reply View the author
秦武扬
deepin
2025-07-12 10:33
#2

赞,完整的经历描述。

Reply View the author
mlbhk007
deepin
2025-07-13 16:03
#3

不太清楚楼主装没装conda,如果没装还是建议装conda,然后用conda管理虚拟环境,别用系统自带的python,系统自带的留个系统用的,外部库多了,系统可能会出鬼😁

你的帖子写的真详细👍

Reply View the author
Feelup
deepin
2025-07-13 20:32
#4
mlbhk007

不太清楚楼主装没装conda,如果没装还是建议装conda,然后用conda管理虚拟环境,别用系统自带的python,系统自带的留个系统用的,外部库多了,系统可能会出鬼😁

你的帖子写的真详细👍

glmos-code-explain

Conda听过,Deepin-IDE默认好像就是推荐这个。但学习嘛,书上说用啥就用啥,不然出了问题不太会处理。joy等先学完这个了再去看看Conda吧。

Reply View the author
mlbhk007
deepin
2025-07-14 08:21
#5
Feelup

glmos-code-explain

Conda听过,Deepin-IDE默认好像就是推荐这个。但学习嘛,书上说用啥就用啥,不然出了问题不太会处理。joy等先学完这个了再去看看Conda吧。

那确实,我也是新手,就这个环境配置这块也踩了不少坑,老师说让用mysql5.5.27的 ,后边小版本对不上,结果可能就有偏差,可以抽一点点时间了解一下

Reply View the author
MeGusta
deepin
2025-07-28 01:14
#6

关于dxcb的报错问题,你可以参考这个帖子:

如意玲珑qt5程序报错无法找到Qt platform plugin "dxcb" 的解决方案

Reply View the author
Feelup
deepin
2025-07-28 06:19
#7
MeGusta

关于dxcb的报错问题,你可以参考这个帖子:

如意玲珑qt5程序报错无法找到Qt platform plugin "dxcb" 的解决方案

原来如此,多谢多谢

Reply View the author