1. 在终端执行下面代码时
pyinstaller -F --icon=strawberry.ico PyQt5_UI.py --noconsole
关于pyinstaller的参数选项可参考:用 Pyinstaller 模块将 Python 程序打包成 exe 文件
其中,
结果:报错:“无法成功完成操作,因为文件包含病毒或潜在的垃圾软件 。”
解决方法:关闭防火墙。
重新执行代码,最后成功安装。
2. 安装完成之后, 在根目录下会生成build文件夹(不用管)和dist文件夹,.exe文件就包含在dist文件夹中。(因为在pyinstaller的参数选项中添加了-F,所以dist文件夹中只有一个.exe文件。)
3. 双击打开.exe文件,出现以下报错。
在临时文件Temp中,找不到路径:\ultralytics\...
出现这种现象是因为在pyinstaller的参数选项中添加了 -F,所以在打包过程中,dist文件夹缺少了一些必要的库(代码中import的库)。
解决方法:重新在终端安装。将 -F 去掉,并且添加上 “pip install ” 安装的库的路径。
pyinstaller --icon=strawberry.ico PyQt5_UI.py --noconsole -p 'D:\Anaconda\envs\yolov8\Lib\site-packages' -p 'D:\Anaconda\envs\yolov8\Lib\site-packages\torch\lib' --hidden-import torchvision
重新安装完成之后,在dist文件夹中生成了一个与.py名称相同的文件夹,打开之后即可看到 .exe文件 。
然后双击运行,或在cmd中打开(如下)。
发现还是会报错,但是这次的报错和第一次的报错有微小区别。
上一次是在C盘中的临时文件夹Temp中找不到 “\ultralytics\...”,即使把ultralytics文件复制过去也会自动消失。(可能是因为该路径为自动生成的临时文件)
而这次路径为.py文件所在的根目录下的 “.\dist\.\_internal\...”
所以只需要手动将从github下载的yolov8的工程文件ultralytics复制到 “_internal文件夹”中,最后便可以正常打开.exe文件了。