You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包的exe被误报病毒,如何解决并交付给客户?

PyInstaller打包exe被杀毒软件误报的解决方法

问题描述

我使用命令 python -m PyInstaller --onefile .\main.py 将main.py打包为单文件exe,文件保存于dist目录,上传至GitHub项目仓库的release后,下载时Chrome将其标记为病毒,双击运行时Windows Defender也识别为病毒并删除,需要解决此问题以向客户交付exe格式的项目。

解决方法

  • 给exe添加数字签名:这是最彻底的解决方案。购买正规机构(如DigiCert、GlobalSign)的代码签名证书,使用signtool工具对打包后的exe进行签名。签名后的文件会被杀毒软件认定为可信程序,大幅降低误报概率,同时提升客户信任度。
  • 调整PyInstaller打包策略:
    • 放弃--onefile参数,使用多文件模式打包。单文件exe运行时会在系统临时目录解压依赖,这种行为容易被判定为可疑;多文件模式直接将依赖文件和主exe放在同一目录,更符合常规软件结构。
    • 用--name参数指定更规范的程序名称,避免使用main.exe这类通用命名;用--icon参数添加自定义图标,让程序外观更贴近正规软件,减少误报触发点。
  • 向杀毒厂商提交误报申诉:
    • 针对Windows Defender:通过微软官方的恶意软件误报提交渠道,上传你的exe文件并说明这是合法的Python打包程序,请求解除误报。
    • 针对Chrome:通过谷歌的安全误报申诉渠道提交文件,说明这是开源项目的合法发布产物。
  • 更换打包工具:如果PyInstaller的误报问题难以解决,可尝试Nuitka(将Python代码编译为C语言再生成exe,结构更接近原生程序,误报率更低)、cx_Freeze等替代工具。
  • 指导客户添加信任(小范围交付适用):如果是面向少量客户交付,可指导客户将exe添加到Windows Defender的排除列表,在Chrome下载时选择“保留危险文件”。但此方法仅适合小范围场景,不适合公开分发。
  • 强化代码透明度:你的项目已托管在GitHub,可明确告知客户代码开源可查,让客户了解程序的安全性,同时也有助于杀毒厂商判定文件的合法性。

内容的提问来源于stack exchange,提问作者Arnav Nagpurkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:34:59