zoukankan      html  css  js  c++  java
  • ubuntu下使用pyinstaller将python文件打包成exe(py文件中含有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了。

  • 相关阅读:
    未命名 1
    介绍一些实用的IOS手势识别库 (COCOS2D)
    cocos2d-x引擎实现$1Unistroke Recognizer手势识别
    【luogu P4755】Beautiful Pair(ST表)(笛卡尔树)(主席树)
    【ybtoj高效进阶 21290】头文件 D(平衡规划)(线段树)
    【ybtoj高效进阶 21289】头文件 C(图论)(dfs)
    【ybtoj高效进阶 21288】头文件 B(线段树)(图论)
    【ybtoj高效进阶 21282】数字重组(DP)(数学)
    【ybtoj高效进阶 21281】矩阵逆转(模拟)
    【ybtoj高效进阶 21280】景点距离(DP)(换根)
  • 原文地址:https://www.cnblogs.com/lipanDL/p/9902270.html
Copyright © 2011-2022 走看看