Python制作自己的软件安装包程序

Python制作自己的软件安装包程序

我看现在 上给自己的Python程序制作安装包一般都是使用inno setup,于是我突然想到能不能自己编写安装包程序(想快速了解制作方法的直接跳到最后)
首先肯定是要把安装包程序和安装的内容放进同一个exe中,而要安装的内容毫无疑问,肯定要放到压缩包里,那把安装程序和压缩包捆绑到一起用这个命令就好了,运行起来也是会直接运行exe的(顺序不能反)
那问题就是如何从exe里提取出zip了,现在就出现了两种方法:

  1. 通过读取exe头信息来确定exe文件大小,从而切割文件
  2. 通过读取压缩包头信息来确定压缩包位置,从而切割文件(zip格式头信息为PK,7z为7z)

第一种方法我进行了尝试

exe文件头信息格式
那思路清晰了,只需要读取偏移量为2-3h和4-5h的数据在进行计算就可以了,代码也就是这个样子:

大家不用试了,失败的很成功
具体原因我没想出来,知道的大佬可以说一下
于是我就采用了第二种方法,不断识别字节信息来确定压缩包位置,代码如下(7z压缩包就把第四行改为)

这里我要解释一下,第四行不能写啊,因为你无法确定P位于偶数位置,而由于Python的机制,判断为假后这个and语句就一定为假,那么第二个判断就不会执行
大家还能看到我注释掉了一行代码,因为我发现这个代码执行速度很快,不需要跳过一段一定错误的数据(整个用时不足1秒)

制作过程如下

那接下来思路就明确了,代码奉上:

这里我没有做图形化,如果你想做就直接写就行了,Popen是用来调起你的软件的,不需要可以注释掉
写完封装成exe,然后用命令捆绑就行了
想添加自启动之类的用winreg操作注册表即可,详情自己百度

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览215423 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月10日
下一篇 2022年7月10日

相关推荐