解决pyinstaller打包过程中无法加载外部资源问题。打包过程是不能将外部资源图片打包成exe的应用程序。所以,这里记录下如何将外部资源文件打包到exe应用程序中,这样无论在哪台电脑上执行,都能显示我们的资源图片,不会找不到资源。首先是一个QRC格式的资源文件,将资源路径配置成这样的文件如下。我创建了一个images.qrc文件。【阅读全文】default.pngimages/1.jpgimages/2.jpg如上配置需要打包的资源文件路径。需要注意的是这里的资源路径配置文件(images.qrc)和你需要打包的.py文件在同一个目录下。下一步是从qrc生成.pypython模块文件。其实生成之后就是把外部资源转成二进制文件,用下面的命令来生成。pyrcc5-oimages.pyimages.qrc生成的images.py文件是这样的,由于太长,这里只展示了部分内容。#-*-编码:utf-8-*-#资源对象代码##创建者:PyQt5(Qtv5.15.2)的资源编译器##警告!在此文件中所做的所有更改都将丢失!从PyQt5导入QtCoreqt_resource_data=b"\\x00\x01\x14\x4d\\x89\\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\\x00\x01\x44\x00\x00\x01\x41\x08\x06\x00\x00\x00\x0f\x27\xd6\x75\\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\\xa8\x64\x00\x00\xff\xa5\x49\x44\x41\x54\x78\x5e\xec\xbd\x07\xbc\\x56\xc5\x96\xe6\x3d\xf3\x4d\xce\x3d\x33\x3d\xb7\xbb\x67\xfa\x76\\x98\xee\xb9\xdd\xf7\x5e\xf5\x9a\x23\x8a\x59\x89\x06\x10\x73\x44\最后要把我们生成的资源文件images.py模块导入进去其中需要引用的模块,在处理之前,我们原来引用资源的方式是这样的self.image.setPixmap(QPixmap('default.png'))处理之后,我们需要导入之前转换好的图片。py模块到当前需要引用资源的模块。importimagesself.image.setPixmap(QPixmap(':/default.png'))注意,使用images.py的资源引用方式后,图片路径前面要加一个冒号。最后,执行正常的打包过程即可。打包完成后,我们会发现我们的资源图片可以正常引用了。pyinstaller-F-w-ifavicon.icotest2.py可以使用-i参数给应用添加图标。如果在打包的过程中出现找不到模块的问题,只要把引用的自定义模块放到外部包下引用即可。比如需要打包main.py,尽量在main.py同级目录下只有一个.py文件,否则打包成exe文件时很容易找到引用包。【优秀往期】pyqt5做了一个二维码生成器,已经打包成exe可执行程序...如何在控制台实现一个数据管理系统(包括增删改查MYSQL数据库)自制文档格式转换器,支持.txt/.xlsx/.csv格式转换...PyPDF2如何实现根据PDF页码提取并保存为PDF格式文件?浪漫海龟,送给程序员自己的圣诞树!