解决 pyinstaller 生成的exe文件被杀毒软件误杀 编译打包神器 Nuitka

2025年3月13日 星期四
pyinstaller 打包后的 exe 运行非常慢, Nuikta 速度快很多,不过不适合
单个文件容易被杀毒软件杀

打包命令,打包成目录

nuitka --standalone --plugin-enable=tk-inter --nofollow-imports  --windows-icon-from-ico=robot.ico --windows-disable-console   --follow-imports sap_login.py

Python exe文件打包工具Nuitka
一、特点:
1、更快的启动速度(大型程序最为明显,有些人工智能的Python程序启动耗时十几秒以上,Nuitka打包后可提速到几秒以内)
2、不易被杀毒软件误杀和报毒
3、源码不会被反编译(核心程序翻译为 等效 的 Python C-API 之后,所有的变量名和函数名已经被混淆为不可意会的字符串,原Python文件是彻底的逆向不出来了)
4、C-API代码在执行过程中更加流畅(Nuitka与Pyinstaller最大的区别是:Nuitka是集编译工具与打包于一体的工具)
二、安装
1、pip install Nuitka
2、安装vs2022(MSVS)或者MinGW64的c++编译器。
三、运行参数
–mingw64 #默认为已经安装的vs2017去编译,否则就按指定的比如mingw(官方建议)
–standalone 独立环境,这是必须的(否则拷给别人无法使用)
–windows-disable-console 没有CMD控制窗口
–output-dir=out 生成exe到out文件夹下面去
–show-progress 显示编译的进度,很直观
–show-memory 显示内存的占用
–enable-plugin=pyside6 打包pyside6模块的刚需
–plugin-enable=tk-inter 打包tkinter模块的刚需
–plugin-enable=numpy 打包numpy,pandas,matplotlib模块的刚需
–plugin-enable=torch 打包pytorch的刚需
–plugin-enable=tensorflow 打包tensorflow的刚需
–windows-icon-from-ico=你的.ico 软件的图标
–windows-company-name=Windows下软件公司信息
–windows-product-name=Windows下软件名称
–windows-file-version=Windows下软件的信息
–windows-product-version=Windows下软件的产品信息
–windows-file-description=Windows下软件的作用描述
–windows-uac-admin=Windows下用户可以使用管理员权限来安装
–linux-onefile-icon=Linux下的图标位置
–onefile 像pyinstaller打包成单个exe文件
–include-package=复制比如numpy,PyQt5 这些带文件夹的叫包或者轮子
–include-module=复制比如when.py 这些以.py结尾的叫模块
–-include-package-data=包含给定软件包名称中的数据文件,等号后软件包名称。有的时候Nuitka并不能正确分析出一些Python软件包所需要使用的数据文件,在运行程序时提示FileNotFoundError等错误,此时就需要使用该选项。如:–include-package-data=ultralytics
–-include-data-files= 按文件名包含数据文件,等号后的格式为<SRC=DEST>。SRC指的是文件夹的路径,DEST指的是文件夹相对于打包结果的路径,其中DEST只能使用相对路径。如:–include-data-files=/Users/admin/Downloads/yolov5n.pt=./yolov5n.pt
-–include-data-dir= 包含文件夹中的数据文件,等号后的格式为<SRC=DEST>。使用方法与–include-data-files=相同。
–follow-import-to=MODULE/PACKAGE 如果使用该模块,请遵循该模块;如果是一个包,请遵循整个包。可以多次给定。默认为空。
四、命令参数
sage: main.py [–module] [–run] [options] main_module.py
Options:
–help 显示此帮助消息并退出
–version 显示错误报告的版本信息和重要详细信息,然后退出。默认为关闭。
–module 创建一个可执行的扩展模块,而不是一个程序。默认为关闭。
–standalone 为输出启用独立模式。这允许您在不使用现有Python安装的情况下将创建的二进制文件传输到其他机器。这也意味着它将变得更大。它暗示了以下选项:“–follow imports"和”–python flag=no_site"。默认为关闭。
–onefile 在独立模式之上,启用onefile模式。这意味着不是一个文件夹,而是一个压缩的可执行文件被创建和使用。默认为关闭。
–python-debug 是否使用调试版本。Default使用您正在使用的来运行Nuitka,很可能是非调试版本。
–python-flag=FLAG 要使用的Python标志。默认值是您用来运行Nuitka的内容,这会强制执行特定的模式。这些选项也存在于标准Python可执行文件中。当前支持:“-S”(别名"no_site")、“static_hashes”(不使用哈希随机化)、“no_warnings”(不给出Python运行时警告)、“-O”(别名为"no_assels")、“no_docstring”(不使用文档字符串)、“-u”(别名为"unbuffered")和"-m"。默认为空。
–python-for-scons=PATH 如果使用Python3.3或Python3.4,请提供用于Scons的Python二进制文件的路径。否则,Nuitka可以使用您运行Nuitka的软件,也可以使用Windows注册表中的Python安装。在Windows上,需要Python 3.5或更高版本。在非Windows上,Python 2.6或2.7也可以。
参考
http://www.cppblog.com/zhangyq/archive/2023/11/27/230202.html
比较适合操作
https://zhuanlan.zhihu.com/p/584899817
https://blog.csdn.net/weixin_44786530/article/details/144233911

需要做一下免杀处理,加壳、加密、加花

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值