欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python打包exe文件的问题总结及解决办法

程序员文章站 2022-03-10 10:33:07
在现实生活中,有时候我们写的程序需要发给小伙伴用,而小伙伴没有python,这时候我们需要将程序打包成exe文件发给小伙伴用。今天讲下打包深度学习模型打包一般要用到cmd命令行,要求cmd能执行python程序。因为我们一般将程序放在文件夹里,然后cmd直接进入文件夹。教程见链接:cmd执行python程序,文件夹直接进入cmd程序一.虚拟环境建立我们需要通过虚拟环境解决打包exe过大的问题。一般的模型如机器学习等,我们可以通过pipenv来建立虚拟环境。使用pipenv建立虚拟环境解决p...

在现实生活中,有时候我们写的程序需要发给小伙伴用,而小伙伴没有python,这时候我们需要将程序打包成exe文件发给小伙伴用。

今天讲下打包深度学习模型

打包一般要用到cmd命令行,要求cmd能执行python程序。
因为我们一般将程序放在文件夹里,然后cmd直接进入文件夹。
教程见链接:
cmd执行python程序,文件夹直接进入cmd程序

一.虚拟环境建立

我们需要通过虚拟环境解决打包exe过大的问题。
一般的模型如机器学习等,我们可以通过pipenv来建立虚拟环境。
使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe)

使用pipenv有个缺陷,就是无法更改python版本,至少我无法更改。
我们可以改用anaconda来建立虚拟环境。anaconda虚拟环境可以更改python版本
anaconda虚拟环境教程大全

虚拟环境下,对深度学习框架版本要求很低,如我的电脑上TensorFlow虚拟环境为1.5.0时可以运行,更高的版本显示错误。而在电脑上,我的tensorflow可以跑最新的版本。
python 与各深度学习版本对应关系见链接。自己参考然后在虚拟环境下安装合适的python版本和深度学习框架
python深度学习环境支撑列表 各版本对应关系,Keras,TensorFlow,pytorch ,caffe等。

二.带资源打包

python将资源文件一起打包进exe 讲解(有算例)

对于深度学习模型,我们一般都是先训练保存。然后将保存的模型作为资源文件进行打包,教程参考前面链接。

注意事项:如我们不能像常规一样,将训练程序在电脑python3.7,keras=2.3下进行训练,然后把得到的模型.h5,放在虚拟环境下进行打包,而虚拟环境下的python=3.6,Keras不是2.3,是其他版本。深度学习不同版本框架保存的模型是不能共用的,否则会出现类似错误

在其他机器保存keras模型(.h5),load_model(~.h5)后报错【in from_config if ‘class_name’ not in config[0] or config[0][‘class_name’] == ‘Merge’:】
原因:两台机器Keras版本号不一致

所以我们需要将训练程序放在虚拟环境下进行训练,得到模型配置,然后将模型配置作为资源文件一起打包。
cmd 进入文件夹,文件夹进入虚拟程序,然后,cmd执行python程序。
cmd执行python程序,文件夹直接进入cmd程序

总结深度学习模型打包步骤

1.将训练程序和界面程序一起放在一个单独文件夹里,注意界面程序读取模型资源路径方法
2.cmd进入该文件夹,然后通过anaconda建立虚拟环境。
3.在虚拟环境下安装打包exe和程序相关的库,安装相关版本的python。
4.在虚拟环境下,进入python,执行训练程序,模型配置得到保存。
5.在虚拟环境下 将模型配置作为资源文件,和界面程序 一起打包。得到最终exe文件

我的一次成功打包结果示意图见下
python打包exe文件的问题总结及解决办法

python打包exe文件的问题总结及解决办法python打包exe文件的问题总结及解决办法

附上机器学习打包方法
python打包exe 之打包sklearn模型中的各种坑及其解决方法。

本文地址:https://blog.csdn.net/kobeyu652453/article/details/108853403