问题
我的代码在Win11,Python3.8.10的环境下打包,生成的.exe文件在Win11和Win10上能正常运行,但是在win7上无法运行,报出以下错误:无法启动此程序,因为计算机中丢失 api-ms-win-core-path-l1-1-0.dll 。尝试重新安装该程序以解决此问题
。
问题核心:Windows 11环境下打包的Python程序在Windows 7上因DLL文件缺失而无法运行。
解决方案
方案一
1.检查Python版本是否兼容Win7系统。Python 3.8.10 是 Windows 7 支持的最后一个稳定版本
2.检查 pip list 中所有库的版本是否兼容当前Python版本。若不兼容,则降低版本,如Pandas 2.0.3不兼容Python3.8,将其换成1.5.3
3.通过PyInstaller强制绑定DLL。
# 使用--win-private-assemblies 强制兼容旧系统,并减少依赖系统DLL
pyinstaller --onefile --win-private-assemblies Main.py
我的Python程序经过上述步骤打包后,最终在Win7环境上成功运行。
方案二
下载缺失的dll文件放到相应的文件夹中(网上很多资料),不过这只适用于仅在一台电脑上运行程序的情况,如果在多个电脑终端都需要运行该程序,建议使用方案一。