利用pyinstaller将现有的python写的tkinter打包成exe

最近写了一个项目,在对接时需要将算法整体和相应的实时数据以及一些依赖包写成一个离线的exe文件

条件和需求:

I) 原始的算法会不断更新数据进行算法实时结果的输出;

II) 该算法会依赖一些python的库,例如:numpy pandas math 等;

III) 并且是多个py文件进行打包,但是有一个是主文件,其他的是依赖的子函数py文件。

即我在打包成exe文件是需要考虑如下问题:

1) 如何将数据加载到打包的命令中?如何在打包后的文件下,可以修改数据文件下的数据,从而可以达到不同的实时数据会有不同的预测结果生成?

2) 有多个自定义的Py文件,一个是主文件(用tkinter写的界面),其他的是主函数中需要的子函数依赖py文件?

3)需要python的一些依赖库,例如:numpy pandas time datetime等模块

注意:下面的尝试全基于已经安装好了pyinstaller基础上,安装过程自行搜索网上教程;如果有pycharm解释器,更简单!

过程:

1. 首先直接 pyinstaller -D main_math.py -p dataprocessed_math.py --add-data "E:\Pycharm_Workspace\小松补库项目\Final_version\sysdata;E:\Pycharm_Workspace\小松补库项目\Final_verson\exdata;E:\Pycharm_Workspace\小松补库项目Final_version\curdata;E:\Pycharm_Workspace\小松补库项目\Final_version\Resupply_order" --hidden-import numpy --hidden-i
mport pandas --hidden-import math --hidden-import time --hidden-import datetime --hidden-import tkinter

报错;数据的文件夹写法有问题,无法生成! 于是先不考虑数据的问题,先跑通!

针对第二个问题是直接先放主程序py文件main_math.py,然后再是依赖的子py文件-p dataprocessed_math.py。

  针对第三个问题的依赖库的问题用如下方式解决: --hidden-import numpy --hidden-import pandas --hidden-import math --hidden-import time --hidden-import datetime --hidden-import tkinter

2.所以修改为:pyinstaller -D main_math.py -p dataprocessed_math.py --hidden-import numpy --hidden-import pandas --hidden-import math --hidden-import time --hidden-import datetime --hidden-import tkinter。

出现了一次报错:Cannot find existing PyQt5 plugin directories            

                             Paths checked: C:/qt64/qt_1544645195969/_h

参考博客:https://blog.csdn.net/chang995196962/article/details/84974175

3.就是用everything搜索PyQt5,找到 /Library/plugins路径下的PyQt5文件夹,将里面的dll动态库 pyqt5qmlplugin.dll复制出来

按照错误提示的路径,一个个的新建文件夹,形成目录。

 

结果: 可以生成dist文件,其中包含有相应的诸如numpy的依赖库,还有exe文件,可以点击该exe文件执行算法!

4.接下来的问题在于:因为算法涉及到数据的实时更新导入,我们没有在主程序中的相应数据的路径,所以在点击exe生成补库单时,会报错:没有相应的路径!

 

尝试:去修改生成的main_math.spec文件,将里面的data加入我们现有的数据文件的路径:如下:

然后:pyinstaller -D main_math.spec
是仍然报错: Unable to find "\Final_version\sysdata" when adding binary and data files.

然后各种搜资料:推荐一篇处理数据的转移的博客:https://blog.csdn.net/pipisorry/article/details/50620495

在dist文件夹下,先新建我需要的文件夹路径(4个),然后根据这个来修改main_math.spec文件:

再次尝试:在终端下pyinstaller -D main_math.spec

好像可以了  hahahahaha  微笑!!!

 

目前采用的方法是:

先pyinstaller -D main_math.py -p dataprocessed_math.py --hidden-import numpy --hidden-import pandas --hidden-import math --hidden-import time --hidden-import datetime --hidden-import tkinter

然后修改main_math.spec文件

最后再在终端运行pyinstaller -D main_math.spec

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值