1.直接安装
pip install PyInstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
2.确定需要打包的xx.py文件模型导入的路径问题
打包成exe是为了在其他机子上使用,故推荐用绝对路径载入模型,如
PATH = os.getcwd() #获取当前文件下的父路径,不包含文件路径
#获取当前路径下需要载入的模型,windows需要改符号
mtcnnpath = (PATH + '\mtcnn.pb').replace('\\','/')
modelpath = (PATH + '\my_model.h5').replace('\\','/')
#载入模型即可
mtcnn = load_mtcnn_model(mtcnnpath)
model = load_model(modelpath)
这样换任意机子都能找到模型,前提是exe文件与模型在同一级
3.生成exe
安装好的pyinstaller.exe一般在scripts的文件中,如我的
然后切换到该目录下按下面操作对xx.py文件进行打包,建议不用-w参数,用-w看不到出错的情况和存在的输出预测值,用-F即可 后面跟着.py的路径即可
成功安装如图
4.运行exe
打包完成后会在pyinstaller.exe文件的目录下生成 build dist xx.spec三个文件
在dist文件夹中有我们需要的exe文件
若模型路径使用的是相对路径,则不需要把模型与exe放在一个文件夹下(换台机子就不行了),所以最后还得把需要的文件模型与exe放在一个目录下即可成功,只需要把exe文件取出就行,不依赖于一起产生的build等文件了
我这exe最后200多m,未考虑新建环境打包,是在cpu环境下打包的。路径正确后成功在其他机子运行。
参考文章:
1.https://blog.csdn.net/xc_zhou/article/details/80952022
2.https://blog.csdn.net/zhouguangfei0717/article/details/100115490?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242
3.https://blog.csdn.net/qq_35756383/article/details/110850920?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242
4.https://blog.csdn.net/qq_29463399/article/details/98959194?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control
5.https://blog.csdn.net/weixin_42064949/article/details/107931128?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161571523916780264028782%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161571523916780264028782&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-107931128.first_rank_v2_pc_rank_v29&utm_term=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A8%A1%E5%9E%8B%E9%87%87%E7%94%A8pyinstaller