pyinstaller打包python程序后在其他电脑不能使用的解决方法

问题

最近做了一个yolov4对施工建材的检测项目,在将检测代码打包成exe文件(使用的pyinstaller -F xxx.py)并移植到其他的电脑后,双击exe文件只有黑屏然后报错退出,不能运行,报错如下图所示。
pyinstaller打包python程序后在其他电脑不能使用的解决方法

问题原因

一开始我根据报错以为是numba库没有装好,但是重新装了并重新生成exe文件也没有解决问题。后来查阅了相关资料了解到可能是因为安装了Anaconda的原因,使得打包过程中一些相关的库没有打包完全。解决办法是通过创建一个虚拟环境然后将所需要的库重新安装好,再进行打包。

解决方法

1、在需要创建虚拟环境的地方创建一个新的文件夹(记住位置),在pycharm中进入解释器选择界面,选择创建虚拟环境。
pyinstaller打包python程序后在其他电脑不能使用的解决方法
我这里已经创建好了虚拟环境,所以提示目录不是空的。
pyinstaller打包python程序后在其他电脑不能使用的解决方法
2、Alt+F12打开pycharm的终端窗口,使用cd将路径切换到创建虚拟环境的文件夹(进入script中),然后键入activate,于是终端前面出现一个包含虚拟环境名字的括号,表明已经**虚拟环境。
pyinstaller打包python程序后在其他电脑不能使用的解决方法
pyinstaller打包python程序后在其他电脑不能使用的解决方法
3、根据代码中需要的模块进行pip安装(需要先升级pip,使用python -m pip install -U pip),将所有需要的模块都安装好之后,确保程序能够正常运行,再使用pyinstaller -F xxx.py进行打包。注意现在的路径是虚拟环境中,打包程序的话需要通过cd将路径切换到代码所在路径。
pyinstaller打包python程序后在其他电脑不能使用的解决方法
pyinstaller打包python程序后在其他电脑不能使用的解决方法
4、再次打包好的exe文件移植到其他电脑上能够正常使用了。
pyinstaller打包python程序后在其他电脑不能使用的解决方法