基本的参数,如:
# -F 打包为一个文件
# -w 除去dos黑框
# -i 指定icon文件
pyinstaller.exe -F -w -i u.ico pscan.py
最近用pyinstaller 打包py程序时,在运行打包成功后的exe时,系统立马弹出警告框说是有病毒,我开始以为是,杀毒软件太敏感,就先手动关闭警告。后来在运行的过程中,有个黑框一闪而过,这太影响体验了,本来不是病毒,人家运行只是,肯定以为含有病毒或者后门之类的..........,
后来,经过查找和分析,发现,在py程序打包时,里面如果用了os.system时容易出现以上的现象,可以将
os.system("xxxxxx")
替换为:
subprocess.Popen("xxxx", close_fds=True)
os.sytem属于独立进程间调用,意思是os.system 开启了一个不相关的独立进程,行为上和病毒很像,所以容易触发报毒。而subprocess还是python属于内部进程。其次os.system 会调用cmd.exe 在cmd中启动新进程,所以会出现黑框,即使使用了-w选项。替换之后,就不存在这个问题了。