尝试运行转换为 .exe 文件的 .py 程序后出现病毒警告
Posted
技术标签:
【中文标题】尝试运行转换为 .exe 文件的 .py 程序后出现病毒警告【英文标题】:Virus warnings after trying to run .py program converted to an .exe file 【发布时间】:2019-06-06 23:25:01 【问题描述】:我将我的 .py 文件转换为可执行程序,在尝试运行它后,我收到了来自 Avast 的病毒警报,提示该程序感染了 Win32:Malware-gen。 当我禁用 Avast 时,该程序运行良好,但从长远来看将无法运行。 此外,当我尝试通过 Gmail 向程序发送电子邮件时,它会用另一个病毒警告阻止附件。 该程序是一个使用 tkinter 制作的简单 python 数据库。
这是我用来转换它的代码:
pyinstaller --onefile --windowed
是否有其他代码可以用来转换它,效果会更好? 为什么我会收到警报?
谢谢
【问题讨论】:
您的 pyinstaller 可能已被感染。我会使用pypi 中的pip
重新安装它,然后再次创建.exe。还强烈建议您对整个计算机进行病毒扫描。恶意软件警告也有可能是完全虚假的——他们称之为“误报”——而不是真正的病毒。不知道该怎么办...也许您需要切换到另一个 .py 到 .exe 转换器 - 其中有几个。
【参考方案1】:
这是一个已知问题,可能是多种原因导致您的病毒程序认为这是病毒。检查一下:https://github.com/pyinstaller/pyinstaller/issues/603
目前,您唯一的选择是尝试其他转换器,例如 py2exe。 各有优劣,您可以参考:https://docs.python-guide.org/shipping/freezing/ 进行漂亮的比较。
【讨论】:
【参考方案2】:使用jar方法
基本上,不是将 .py 文件转换为 exe 文件,而是将其转换为 jar 文件。
关注这个答案:
https://***.com/a/1255113/7123519
或
https://wiki.python.org/jython/JythonFaq/DistributingJythonScripts
【讨论】:
请注意 jython 与 python3 不兼容,因此这种方法可能不适用于新开发的程序。以上是关于尝试运行转换为 .exe 文件的 .py 程序后出现病毒警告的主要内容,如果未能解决你的问题,请参考以下文章
运行转换后的 py 到 exe 文件显示控制台而不是设计的 GUI