pyinstall加密打包

这个工具打包真的是挺省事的,但是一旦涉及保护源码,那么原来简单的打包就不够用了。轻易就能被人反编译。
工具自然也是要进步的,现在pyinstall支持加密打包了。
虽然我没查到他加密的原理是什么,但是应该比原来破解增加了一些难度,应该暂时够用了。主要网上提供的加密手段多少有点麻烦。为了省事。

pip install pyinstaller

如果需要使用加密功能,则需要安装tinyaes,这个包依赖vc++14,

如果使用原生版的Python,那么需要在本机安装好vc++14。这个多少有点麻烦。而使用anaconda3就方便多了,我看了一下,anaconda自带vc++等运行环境,考虑很周到。

所以推荐使用anaconda作为基本环境。

pip install tinyaes

打包命令:

pyinstaller -F -w --key '12345678' --clean main.py

常用指令集见:https://www.cnblogs.com/bbiu/p/13209612.html

将配置文件一起打包

程序有时免不了有一些配置文件,而我们打包成一个exe文件就是为了方便,但是配置文件如果不一起打包进去,就会多出几个文件,很麻烦。

修改程序中对配置文件的路径引用

打包进程序内的配置文件的引用会发生一点变化,官方有给出解决方案:

def processPath(path):
    '''
    针对pyInstaller打包程序而设计。这是官方给出的方案。
    在pyInstaller打包时,会给sys设置属性frozen,
    并且会将打包程序的绝对路径存储在sys._MEIPASS。
    所以当不打包程序时,不需要使用该方案拼接路径
    :param path: 相对于根目录的路径
    :return: 拼接好的路径
    '''
    if getattr(sys, 'frozen', False):  # 判断是否存在属性frozen,以此判断是打包的程序还是源代码。false为默认值,即没有frozen属性时返回false
        base_path = sys._MEIPASS #该属性也是打包程序才会有,源代码尝试获取该属性会报错
    else:
        base_path = os.path.abspath(".") # 当源代码运行时使用该路径
    return os.path.join(base_path, path)

对配置文件的引用都需要将路径进过上面的函数进行拼接,否则打包了会调用配置文件失败。

先生成spec文件

pyi-makespec -F -w main.py 
(如果需要打包图标,可以在这一步添加 -i head.ico)

执行该命令后会在main.py目录下生成main.spec文件。打开该文件,在datas里面添加配置文件的路径。他的格式是:('data.ini','.'),前面为配置文件名,后面是所在路径。main.py所在属于根目录,所以直接用“.”。
在这里插入图片描述

打包程序

pyinstaller --key '12345678' main.spec

打包过程没问题就可以了。这样配置文件就包含在exe里面。
运行测试一下,没问题就收工。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lsjweiyi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值