微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ubuntu下使用pyinstaller将python文件打包成exepy文件中含有keras框架的代码

一 使用工具

pyinstaller,在ubuntu上安装pyinstaller非常的简单,直接使用下面的命令即可

pip install pyinstaller

注意:推荐大家使用python3.0及以上的python版本(好像python3.6使用pyinstaller也存在一些问题),因为使用python2.7下的pyinstaller在封装的时候会提示缺失各种包等问题,然而直接使用python3.5下的pyinstaller进行封装就非常的流畅。

二 打包的方法

进入到需要打包的py文件的目录下,在命令行中运行:

pyinstaller 文件名.py(会生成三个文件夹,有用的时dist文件下,在该文件夹下有一个和py文件同名的exe文件,就是打包生成的exe文件)

或pyinstaller -F 文件名.py(也会生成三个文件,有用的同样是dist文件,不同的是dist文件夹下只有一个exe文件

pyinstaller含有的一些参数(来源与https://blog.csdn.net/qq_27833589/article/details/62898130):

-F的含义为将原文件打包为exe文件,这里还有其他几个可选参数
-D:创建一个目录,包含exe文件,但会依赖很多文件,这是认选项
-c:使用控制台,这也是认选项
-w:使用窗口,无控制台

三 遇到的问题

问题描述:按照上面的方法成功打包,但是在执行exe文件时出现了一个非常奇怪的问题,就是程序好像开启了多个进程来分别运行该程序一样,控制台窗口可以看到的是程序正在疯狂的不断重复的运行,而且重复运行不是一次结束后,立马接着执行,而是不等上次执行结束,就又开始执行了下一次。

问题查找:刚开始的时候,十分的迷,根本不知道怎么去寻找原因,后来在实验室大佬的指导下,一步一步的排除原因,最后终于找到是因为引入的一个工具包的原因,这个包是from sklearn import preprocessing用来对数据进行归一化。

结论:在使用pyinstaller时,不要py文件中不要引用from sklearn import preprocessing包,尽量通过自己写函数来实现相应的功能(我就是这么做的,因为归一化还是比较好写的)。pyinstaller 可以将tensorflow和keras进行完好的封装,这点上不用怀疑pyinstaller的能力。

之前一直写C++,没有接触过python。最近几个月,用python写了一些功能,发现python真的太好用了,开始迷恋于python了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐