pycharm配置pyqt5开发环境的关键是正确配置qt designer和pyuic5的外部工具路径并确保使用项目虚拟环境:需安装pyqt5-tools(windows)、apt安装(linux)或改用pyqt6(macos),program路径须指向venv内可执行文件,arguments中pyuic5必须加-m参数,生成的ui文件需在main.py中实例化qapplication和主窗口才能运行。

PyCharm 配置 PyQt5 开发环境的关键不是装完库就完事,而是让 Qt Designer 和 pyuic5 能在 IDE 里直接调用、路径不报错、生成的代码能跑起来。多数人卡在第二步——外部工具配置错一个路径或参数,后续全崩。
先确认 PyQt5 和 pyqt5-tools 是否真装对了
很多人以为 pip install PyQt5 就够了,其实缺 pyqt5-tools 就没法用 designer 和 pyuic5。而且 Linux/macOS 和 Windows 的安装行为差异很大:
- Windows 下
pip install pyqt5-tools通常自带designer.exe和pyuic5.exe,路径在venv\Lib\site-packages\pyqt5_tools\Qt\bin\或venv\Scripts\ - Linux(如 Ubuntu)建议优先用
apt install qt5-default pyqt5-dev-tools,再用pip install PyQt5,否则designer可能打不开或缺失图标资源 - macOS 上
pyqt5-tools官方已弃用,得改用pip install pyqt6或手动编译 Qt Designer,不推荐硬刚 PyQt5 - 验证是否可用:终端里直接运行
designer --version和pyuic5 --help,有输出才继续
PyCharm 外部工具必须用项目虚拟环境里的可执行文件
错误最集中的地方:Program 字段填了系统 Python 路径,但项目用的是 venv,导致 ModuleNotFoundError: No module named 'PyQt5'。PyCharm 不会自动帮你切换解释器上下文。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
-
Qt Designer的 Program 必须指向你当前项目解释器环境下的designer可执行文件:- Windows:
$ProjectFileDir$\venv\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe(注意不是site-packages\pyqt5-tools,包名带连字符但实际目录是下划线) - Linux:
/usr/bin/designer(apt 安装)或$ProjectFileDir$/venv/bin/designer(pip 安装)
- Windows:
-
PyUIC的 Program 必须是你项目 venv 里的python.exe(Windows)或python(Linux/macOS),不能是全局 Python - Arguments 固定写成:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py,别漏-m,否则找不到模块入口 - Working directory 统一用
$FileDir$,不是$ProjectFileDir$—— 因为你要在 .ui 文件上右键运行,工作目录得是它所在文件夹
生成的 .py 文件不能直接运行,必须补启动逻辑
pyuic5 输出的只是 UI 类定义,没事件绑定、没 QApplication 实例、没主窗口 show()。直接运行会黑屏或报错 AttributeError: 'Ui_MainWindow' object has no attribute 'show'。
- 在生成的
xxx.py同级新建main.py,内容如下:
import sys from PyQt5.QtWidgets import QApplication, QMainWindow from xxx import Ui_MainWindow # 替换 xxx 为你的 .py 文件名(不含 .py) <p>if <strong>name</strong> == '<strong>main</strong>': app = QApplication(sys.argv) MainWindow = QMainWindow() ui = Ui<em>MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec</em>())</p>
xxx.py 本身——下次用 PyUIC 重生成会覆盖;所有业务逻辑写在 main.py 或单独的逻辑模块里Pyrcc 工具,Arguments 是:$FileName$ -o $FileNameWithoutExtension$_rc.py,然后在 main.py 开头加 import xxx_rc
真正容易被忽略的点是:每次换项目、换虚拟环境,都得重新核对外部工具里的 Program 路径——PyCharm 不继承、不同步、不提醒,只默默用旧路径执行失败。










