3.nuitka只打一次包多次版本发布

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、基础参考

nuitka打包程序的版本发布方法,不同版本命令参考"一文讲清楚:nuitka用于python打包(应用于PyQt5编程打包"

二、背景

nuitka打包好的程序动辄上100M,更有甚者超过1G。这种程序如果每次更新一点就全量发布,必然让用户非常懊恼。

三、打包阻断原理

nuitka打包过程,根据py文件中from、import遍历相应模块文件打包到打包程序中,一旦遇到pyd,则不再递归查找下一层模块py文件。

nuitka用到什么打包什么,如果新更新的代码中包含了新的模块,运行到这个新程序就会出现报错现象,如果这个新的模块是自己维护的,可以用下面方案解决;这个新模块是python自带模块或者第三方python模块有两种解决办法:1. 把这个模块拷贝到打包目录下、2. 修改app.py增加一样引用代码,重新打包整体发布。

四、打包方案

版本发布解决方案(初级):

程序层级:入口程序.py–>pyd文件–>项目主体模块

app.py #调用 main函数(from client.callMain import main)

client/callMain.pyd #提供main函数供app.py使用

#pyd文件由callMain.py转换而来,提供main函数,调用main.py中的窗口

client/view/frame/main.py #主体窗口

client/view/manage/user.py #用户管理界面

使用打包命令打包app.py文件,递归到from client.callMain import main 发现callMain为pyd文件,nuitka必然不再递归打包,client里面其他模块就需要手动转换为pyd文件拷贝到打包目录之下

版本发布解决方案(Cython版本):

待续:如何批量转换py文件为pyd;在“PyQt快速开发框架”中会集成一个这方面的小工具。
版本安全发布解决方案(启动安全检查pyd合法性):

待续:pyd文件如何进行安全校验,规避破解风险
案例:待续,也可以参考最近发布的“Pyqt快速开发框架项目demo”进行构建


基础打包文章参考:Python打包exe的王炸-Nuitka 入门教程

声明:本文同步发布于知乎:3.nuitka只打一次包多次版本发布

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿飞哥666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值