问题现象
win10中使用pyinstaller工具打包python为exe后,在win7上运行报错:
无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll。尝试重新安装该程序以解决此问题。
或
无法启动此程序,因为计算机中丢失api-ms-win-core-path-l1-1-0.dll。尝试重新安装该程序以解决此问题。
解决方案
编译原理咱不说,咋也不知道,只知道,反正打包过程中,会从某个地方先把这些exe所需要的dll(运行环境)拷贝到一个缓存目录,然后再通过类似压缩的方式打包成一个exe。
通过我的摸索,我发现说白了,运行却某个dll文件,就是拷贝的源目录不存在该dll,导致未成功拷贝到那个缓存目录,最终exe文件里没包含。
所以废话不多说。我打包python环境前提是3.8,据网上说3.9不支持win7了,待验证。
使用Everything工具全局搜送报错缺失文件,如果没有,就去度娘搜索,然后拷贝到源目录。
那么我们说说源目录应该是什么?
把下载好的文件(api-ms-win-core-path-l1-1-0.dll)放到你的系统路径。它的默认路径是在:
C:\Windows\System (Windows 95/98/Me),
C:\WINNT\System32 (Windows NT/2000),
C:\Windows\System32 (Windows XP, Vista, 7, 8, 8.1, 10)。
在 64位 Windows 上,需要拷贝到
C:\Windows\SysWOW64\
当然为了双保险,我32位目录也放了。
C:\Windows\System32\