如何在Windows10环境下,对Tensorflow代码进行打包封装(利用PyQt5制作界面)

如何在Windows10环境下,对Tensorflow代码进行打包封装(利用PyQt5制作界面)

在写代码、做项目的过程中,经常需要对代码进行打包封装,提供给用户使用。本文就重点介绍如何在Windows10环境下,对深度学习代码进行打包封装,以Tensorflow代码为例进行说明。

1、编写Tensorflow代码

Windows10环境下,Tensorflow貌似不支持Python2.7,建议使用Python3.5以上版本。如果是用Anaconda的用户,可以使用如下cmd命令,新建和使用Python3.5以上环境。

conda create -n python3.6 python=3.6 #新建虚拟环境
conda env list #虚拟环境列表
activate python3.6 #激活虚拟环境
deactivate #退出激活环境

创建完Python环境后,安装Tensorflow以及相关Python库,这里不做说明,网上有很多教程,安装比较容易。

所有环境都配置完成后,就可以根据具体的任务,编写相应的Tensorflow代码。这里可以对代码简化,仅保留输入、输出接口,用于后面界面制作。

2、利用PyQt5制作界面

编写完代码后,这里利用PyQt5制作界面,利用Designer工具对界面进行设计,可以简化码代码过程,但如果不注意管理的话,后面对代码调整会显得比较凌乱。

如何安装使用 PyQt5,请参考: https://blog.csdn.net/qq_45110581/article/details/109068620

Designer打开后,界面显示如下:

这里,我们简单的设计一下界面。界面设计如下:

从上面中间的图可以看出,我们设计的按钮和文本框,软件里都是按顺序给编码的,如果设计的按钮比较多,后面绑定事件时就会比较乱,还得一个个确定。所以,在设计界面时,记得随时对新增的按钮或文本框修改名称,如右图所示,这样后续绑定事件时,就会方便多了。

3、使用Pyinstaller对代码进行打包

关键部分来了,如何利用Pyinstaller对代码进行打包?

首先,安装pyinstaller库,cmd命令如下:

pip install pyinstaller

接下来,就可以利用Pyinstaller对代码进行打包了。
基本打包命令如下:

pyinstaller -F test.py

基本参数:

-F 表示生成单个可执行文件 
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧! 
-p 表示你自己自定义需要加载的类路径,一般情况下用不到 
-i 表示可执行文件的图标

常见问题及解决方案:

(1)如果遇到打包过程中缺少一些文件,可先尝试重新安装 pyinstaller,更新一下包,然后再试,如果依旧不行,可以尝试在打包命令后加  -p <导入的包路径>, 然后重新编译打包;

(2)如果有多个依赖文件,把重要的文件放前面(主函数),其他文件放在后面(需要import到主函数),然后最后的exe文件名会以第一个文件命名;

(3)打包成功后,如果打开exe文件遇到了no module named typedefs,可考虑在打包命令后面加 --hidden-import sklearn.neighbors.typedefs 重新编译打包,也可以用编辑器打开中间文件(spec后缀文件),重新在 hiddenimport=[] 中加上参数(sklearn.neighbors.typedefs),保存后直接编译中间文件。例如缺少的是 pywt 模块,则修改为: hiddenimport=["pywt","pywt._extensions._cwt"].

(4)‘No module named xxx’问题一般是某个包没有被打包编译,解决办法是修改main.spec文件中的hiddenimports(main.spec文件是pyinstaller main.py编译后生成的),添加上该文件的具体路径。一般修改为 :hiddenimports=['pywt','pywt._extensions._cwt','sklearn.neighbors.typedefs']

参考链接:

https://blog.csdn.net/zyc121561/article/details/79562935

https://blog.csdn.net/u012968002/article/details/80237000https://blog.csdn.net/MrLevo520/article/details/51840217

https://blog.csdn.net/weixin_36602742/article/details/53327262

压缩打包

压缩可以通过 upx-3.95-win64 进行,在打包文件的路径下放入 upx-3.95-win64 文件夹,然后使用语句 pyinstaller -F test.py --upx upx-3.95-win64,同样可以使用 pyinstaller 命令对不需要打进来的第三方库进行排除,以减少打包后的文件大小,例如使用语句 pyinstaller -F test.py --exclude-module scipy --upx upx-3.95-win64,将 scipy 包排除在外,也可以先进行打包,然后修改 test.spec 文件,在 exclude-module==[] 中输入 'scipy', 然后再执行语句 pyinstaller -F test.spec --upx upx-3.95-win64 进行打包。

不过,貌似压缩的效果不是很明显,酌情使用吧!

参考链接:

https://blog.csdn.net/qq_24624539/article/details/88074501

https://blog.csdn.net/weixin_36602742/article/details/53327262

https://stackoverflow.com/questions/48629486/how-can-i-create-the-minimum-size-executable-with-pyinstaller

打包完成后,在dist文件下,可以找到打包后的exe文件,双击就可以运行啦!其他生成的文件,貌似没啥用,可以删除。

 

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值