用Pyinstaller打包PyQt做的界面出现的问题

前不久做了一个项目,做完之后用Pyinstaller打包PyQt做的.py文件之后,出现了一个这样的错误。


image.png

这个错误在本地直接执行py文件时是不会存在的,打包之后传到另一台电脑上执行就出错了。
找了很久错误出在哪里,网上的问题大多是没有附带图片文件,把图片文件通过pyrcc转成py文件之后import就能解决了。而我的代码是实时显示,从字节流中load,应该不是这个问题。最后在把程序里读图的地方写死成一个png文件时发现是能显示的,这才发现原来是jpg文件造成的。jpg文件需要导入一个特殊的qjpeg4.dll,在本地安装了PyQt之后在本地执行能自己找到,在PyQt安装文件夹但是用pyinstaller打包的文件似乎是没有把这个dll打包进去的,所以jpg文件就显示不了了。


image.png

我试着按这个网站的方法打包这个dll,不过还是显示不了。https://blog.csdn.net/weixin_30535843/article/details/98814713
最后加了一段代码,让程序自己去找这个.dll文件,终于解决了这个问题。话不多说,附上代码。

self.pluginsPath = './plugins'   # dll所在文件夹
if os.path.exists(self.pluginsPath):  # 指定插件路径。源码运行时不会生效,打包后运行检测到路径,加载插件
    QtGui.QApplication.addLibraryPath(self.pluginsPath)

你可能感兴趣的:(用Pyinstaller打包PyQt做的界面出现的问题)