win10上使用pyinstaller工具打包python后在win7无法运行(运行报错)

问题现象

win10中使用pyinstaller工具打包python为exe后,在win7上运行报错:

无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll。尝试重新安装该程序以解决此问题。

在这里插入图片描述

无法启动此程序,因为计算机中丢失api-ms-win-core-path-l1-1-0.dll。尝试重新安装该程序以解决此问题。

在这里插入图片描述
亦或者

无法启动此程序,因为计算机中丢失api-ms-win-crt-conio-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\

注:我在后续重装操作系统后,再次配置时,搜索有很多缺失文件,但拷贝过去,依然报错,后来通过各种排查发现,如果拷贝这个目录就没问题,大家可以参考下:\n\rC:\Windows\System32\downlevel\api-ms-win-crt-process-l1-1-0.dll 以及C:\Windows\SysWOW64\downlevel\api-ms-win-crt-process-l1-1-0.dll,所以后续拷贝时,我认为就拷贝这两个分别对应到C:\Windows\System32\和C:\Windows\SysWOW64\即可
在这里插入图片描述
还有一种方式就是直接添加路径到环境变量:
为了双保险,还是把32位和64位都加进去,这种方式不好的点在于需要重启电脑,但有一个很好的点是可以包含更多的dll,避免漏缺,推荐这种方式。

在这里插入图片描述

  • 30
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunkingYang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值