RuntimeError: maximum recursion depth exceeded while calling a Python object
解决方案
pyinstaller *.py,中途停止生成spec文件,在spec文件内加上
import sys
sys.setrecursionlimit(5000)
***********************************************************
运行exe时找不到module,pyinstaller *.py --hidden-import,或者直接在打包后的文件夹中添加库文件。
最保险的做法是把库先加到工程文件夹中,最后加到exe所在文件夹下。
***********************************************************
cannot import name ’*‘
解决方案:将ImageStat.py放入打包后的该文件所在库的文件夹中(例如以上为PIL)。
***********************************************************
qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
***********************************************************
运行exe文件时某个包出现不知名问题:
感觉是torchvision出了问题,打包后的库总感觉不太对劲,用原来的torchvision库替换下就解决啦。
***********************************************************
如何在exe文件中解决下列图片显示问题,花了三天,差点要放弃的时候在国外网站的小角落里翻到了解决方案,泪流满面,下班回去奖励自己不烧饭了!!
1.首先将所需图片写入.qrc文件,再把.qrc转为.py,相当于把图片都存储到了py文件中,不需要再把原图拷贝到打包文件夹中。万能的网友们早已写好了脚本!
import subprocess, os
#图片所在文件夹
images = os.listdir('./images')
#不太清楚,可以删除
qss = os.listdir('C:\qss')
#生成qrc资源文件
f = open('images.qrc', 'w+')
f.write(u'\n\n\n')
for item in images:
f.write(u'images/'+ item +' \n')
for item in qss:
f.write(u'qss/'+ item +' \n')
f.write(u' \n ')
f.close()
#qrc转为py文件
pipe = subprocess.Popen(r'pyrcc5 -o images.py images.qrc', stdout = subprocess.PIPE, stdin = subprocess.PIPE, stderr = subprocess.PIPE, creationflags=0x08)
2.最后在程序中导入py文件,注意前面的:。
import images
icon.addPixmap(QtGui.QPixmap(':/images/logo.jpg'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
3.最重要的一步来啦!把pyqt5文件夹下的plugins/imageformats拷贝到打包后的exe所在的文件夹下,因为需要提供对JPG格式的支持。
QPixmap::scaled: Pixmap is a null pixmap
***********************************************************
最后再记录一下打包过程,避免遗忘:
1.安装pyinstaller
2.pyinstaller 主程序.py
3.打包完成后到exe所在文件夹下在powershell中运行exe文件。