这个工具打包真的是挺省事的,但是一旦涉及保护源码,那么原来简单的打包就不够用了。轻易就能被人反编译。
工具自然也是要进步的,现在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属性时返回falsebase_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里面。
运行测试一下,没问题就收工。

pyinstall加密打包相关推荐

  1. pyinstall 加密打包exe闪退报错不运行问题

    pyinstall 正常打包没问题, 为了加密安全用Cython混淆按照文档打包exe, 一直调试半天出错,加载一个模块一个空方法导入进去打包后就无法运行, 尝试换成当前文件下新建一个目录模块解决了执 ...

  2. dll 重新加密打包的问题

    1. dll 重新加密打包的问题: A.首先对重新封装一下 先封装成功 然后在加看门狗 封装成dog_packed 出现问题为:error LNK2005: "class Cdog_pack ...

  3. pyinstall :打包 .exe 文件报错AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘

    有疑问的地方 参考博文 一.环境搭建 Python GUI图形化小工具编程学习-- PySide2 环境搭建(一) 二.实例演示 Python GUI图形化小工具编程学习-- Demo 实例演示(二) ...

  4. 文件加密打包和解密解包

    文件打包加密和解包解密 提示:这里记录上一章提到的加密解密进行一个进阶的 打包+加密 -- + --解包+解密 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 加密解密+打包解包 文 ...

  5. python加密打包

    python加密打包(保护python源代码) 1.编译为.so 在主py文件a.py创建python文件build_pyd.py如下: from distutils.core import setu ...

  6. .NET加密打包教程一(.NetReactor加密)

    目录 背景 .NetReactor加密 Files Settings License Manager Save Project Protect 更多 背景 手头上做的一个项目临近工期,需要加密打包交付 ...

  7. tkinter - 使用Pyinstall进行打包封装

    1 需要安装 PyInstaller C:\Users\30818> pip install pyinstaller 2 将模块py文件打包成pyd 防止反编译暴露源代码  pyd是一个模块插件 ...

  8. Electron加密打包文件

    1.安装 electron-packager 注意:先复制一份package.json文件到./app目录下,(千万记住这一点,我在这步这折腾了好几个小时才弄明白)然后记得改下package.json ...

  9. python源代码加密打包

    关于Python打包和解包可以参考链接:https://zhuanlan.zhihu.com/p/109266820 打包时一般用 pyinstaller --noconsole --key 1 -D ...

最新文章

  1. Android 关机弹出菜单
  2. 元宇宙iwemeta:互联网行业年底清算,税收优惠门槛抬高,阿里巴巴多交41亿税款
  3. [Java基础]字节缓冲流
  4. C# 给窗体添加皮肤 - SkinEngine的应用
  5. java 获取本机的IP和hostname
  6. PBOC规范研究之六、变长记录文件(转)
  7. html if语句多条件,nginx if多条件判断的实现
  8. Effective系列经典著作,铺就程序员殿堂之路
  9. Python: ModuleNotFoundError解决方案
  10. 微信小程序 地图 组件
  11. 浏览器首页被雨林木风篡改( /hao.ylmf.com/u7654.html)
  12. Masimo宣布旨在协助COVID-19响应努力的远程患者处治解决方案Masimo SafetyNet™全面上市
  13. ISA防火墙规则练习
  14. 公式编辑器中如何修改字体?
  15. [game]《泰坦陨落2》
  16. x=rn(n)傅里叶变换matlab,第三章 离散傅立叶变换
  17. Java趣味编程(一)
  18. 迁移学习知识 - 迁移学习的四种应用场景
  19. 机器自动翻译古文拼音 - 十大宋词 - 扬州慢 淮左名都 姜夔
  20. 将一句话的单词进行倒置,标点不倒置

热门文章

  1. python--星际大战(基础版)
  2. MX-yolo模型训练
  3. 6-8 在数组中查找指定元素 (15 分)
  4. 闭门分享实录:100位产品经理“拷问”罗辑思维创始人快刀青衣
  5. java android 相册_基于安卓Android studio相册备份及管理系统的设计
  6. 在 IDEA 中使用 Debug,简直太爽了。详细图文,博主制作了小视频教你如何使用 Debug
  7. 王者荣耀2.0继王者荣耀1.0后上线!C++
  8. python学习十九(王者荣耀游戏之购买武器,后续补充)
  9. 计算机网络插座布线安装的过程,电脑插座怎么接线 电脑网线插座方法【图文】...
  10. 2018春季-华南理工-计算机概论,【7A文】华南理工大学网络教育学院2018计算机概论作业...