pyrcc5解析引用时出错,如何排查.qrc文件问题?
问题:PyQt .qrc资源文件解析错误
编写PyQt资源文件时,执行pyrcc5 -o qrc_resources.py resources.qrc命令出现以下错误:
pyrcc5 Parse Error:resources.qrc:3:34 [error occurred while parsing reference]
对应的.qrc文件内容:
<!DOCTYPE RCC><RCC version="1.0"> <qresource> <file alias="MY&C-LOGO-2020.svg">resources/MY&C-LOGO-2020.svg</file> </qresource> </RCC>
原因与解决方法
问题根源
XML语法中,&是特殊字符,用来标识实体引用(比如&代表&)。你的.qrc文件里直接使用了MY&C-LOGO-2020.svg,解析器会把&当成实体引用的起始,尝试解析后续字符,但C不是合法的实体名称,因此抛出解析错误。
解决步骤
- 转义特殊字符:把文件别名和路径中的
&替换为XML实体&,修改后的.qrc文件内容如下:
<!DOCTYPE RCC><RCC version="1.0"> <qresource> <file alias="MY&C-LOGO-2020.svg">resources/MY&C-LOGO-2020.svg</file> </qresource> </RCC>
- 重新执行命令:再次运行
pyrcc5 -o qrc_resources.py resources.qrc,即可正常生成资源文件。
调试小技巧
- 遇到XML解析错误时,优先检查是否存在未转义的特殊字符(
&、<、>、"、'),这些字符在XML中都需要用对应的实体替换。 - 可以用在线XML校验工具快速定位语法问题,输入文件内容后工具会直接指出特殊字符类错误。
内容的提问来源于stack exchange,提问作者sdbbs
相关产品推荐
相关产品推荐

