在Windows终端使用pyinstaller将python脚本打包成exe可执行文件后,运行exe文件出现下面报错:
解决方法:
第一步:仔细查看pyinstaller打包过程中的日志信息是否有报错的信息,比如我安装过程中出现的问题信息如下:
这个报错的根源是Scipy版本、Python版本和Numpy版本之间不对应,导致不兼容,这里给出对应关系表:
SciPy版本 | Python兼容版本 | NumPy兼容版本 |
1.13.0 | 3.9+ | 1.22.4或更高 |
1.12.0 | 3.9+ | 1.22.4或更高 |
1.11.0 | 3.9+ | 1.21.6或更高 |
1.10.0 | 3.8+ | 1.19.5或更高 |
1.9.0 | 3.8-3.11 | 1.18.5或更高 |
第二步:我这里报错的原因是由于NumPy 2.0.1版本与一些模块不兼容导致的。NumPy 2.0.1是一个重大更新,它不向后兼容之前的版本,解决思路是对NumPy进行降级:
pip install 'numpy<2'
上面命令运行完后又报错:
第三步:这里报错的原因是:scipy 的版本是1.7.2,与降级后的numpy-1.26.4不兼容,解决方法是对scipy升级版本(截止目前最新的版本是1.14.1SciPy -,但是我指定这个版本一直安装不成功,因此我转而换成次新版本):
pip install scipy==1.13.1
然后重新使用pyinstaller打包,这里发现之前的报错信息没有出现了,说明打包的问题已解决。
第4步:但是重新打包的exe文件还是继续出现之前的问题,问题原因是pyinstaller版本太低,解决方法是——卸载再重新装:
pip uninstall pyinstaller
pip install pyinstaller