使用pyrrc5编译res.qrc后出现No module named res_rc导入错误求助
解决PyQt5中"No module named res_rc"导入错误的排查步骤
先确认pyrcc的执行顺序和输出位置
必须先运行pyrcc生成res_rc.py,再用pyuic转换.ui文件——因为pyuic生成的ui.py会自动插入import res_rc语句,若res_rc.py还未生成或不在Python可搜索路径内,就会触发错误。- 检查pyrcc命令版本对应:PyQt5用
pyrcc5 res.qrc -o res_rc.py,PyQt6用pyrcc6 res.qrc -o res_rc.py,别混用版本。 - 确保res_rc.py和生成的ui.py在同一目录,或处于Python的
sys.path可访问路径中。
- 检查pyrcc命令版本对应:PyQt5用
验证.ui与.qrc的资源引用一致性
打开Qt Creator的.ui文件,确认图标引用路径是资源前缀格式(比如:icons/app.ico),而非绝对/相对路径;同时检查res.qrc中是否正确包含该.ico文件,且路径与.ui中的引用匹配(比如qrc里的<file>icons/app.ico</file>对应.ui里的:icons/app.ico)。检查PyCharm环境配置
- 确认运行pyrcc/pyuic的Python解释器,与PyCharm当前项目使用的解释器完全一致(尤其是虚拟环境场景,避免全局环境和虚拟环境混用来导致模块路径不匹配)。
- 右键点击res_rc.py所在文件夹,选择
Mark Directory as->Sources Root,让PyCharm将该目录标记为源码根,确保Python能识别到res_rc模块。
手动验证导入并重新生成文件
- 在PyCharm的Python控制台执行
import res_rc,若报错则说明路径问题;若成功,可删除旧的ui.py,重新运行pyuic生成新文件。 - 若res_rc.py在子目录(如
resources/res_rc.py),需确保ui.py中的导入语句为import resources.res_rc,或把子目录设为源码根。
- 在PyCharm的Python控制台执行
清理缓存重试
删除旧的ui.py、res_rc.py及__pycache__文件夹,按pyrcc→pyuic的顺序重新生成所有文件,必要时重启PyCharm清除缓存。
内容的提问来源于stack exchange,提问作者Lisen
相关产品推荐
相关产品推荐

