pyinstaller 打包的exe在某些win7上面报错 faild to execute script pyi_rth_multiprocessing .一直没找到原因,一直以为是pyinstaller的问题。 后面想到会不会是python本身的问题。
因为 pyinstaller 本质上就是把python打包在最终exe里,如果python本身有问题,打包后的exe肯写也有问题。带着猜测,试着在有问题的电脑上装了,开发环境同版3.8.2的python,结果
是提示不能安装,要装sp1(实际系统是装了的),看日志,要装 KB2533623 ,才行。 这样基本断定就是这个原因了。查了一下python的资料.python3.7以上对系统有要求,必须须要打补丁 [Windows6.1-KB2533623]才能正常运行 。 没打补丁的系统python3.7(含)以上就都不能正常运行,所以打包的程序就会报错了。 只要打上此补丁立马就好了。 或者打包环境换成 python 3.6 的。
Windows6.1-KB2533623补丁下载地址:http://www.3h3.com/soft/119473.html
补丁安装方法:
以管理员身份运行,打开dos窗口,执行以下指令
expand –F:* C:\LINSHI\Windows6.1-KB2533623-x64.msu C:\LINSHI\
按回车键执行后,再次执行以下指令
dism.exe /online /Add-Package /PackagePath:C:\LINSHI\Windows6.1-KB2533623-x64.cab
按回车键执行后,Windows将会跳过检测, 直接进入安装程序, 完成后重启计算机即可完成安装。