Win11系统下打包适配Windows XP的Python exe程序遇DLL缺失问题求助
适配Windows XP的Python exe编译方案选型及问题解决
方案选型结论
优先推进第一种Python 3.4.3 + py2exe的方案,第二种方案无修复可能:Python 3.5及以上版本官方已停止对Windows XP的支持,Python 3.7.9编译出的程序依赖Vista及以上系统才有的内核API,你遇到的GetFinalPathNameByHandleW入口点缺失就是这个原因,底层不兼容无法通过补全dll解决。
第一种方案的问题修复方法
1. msvcr100.dll缺失问题解决
msvcr100.dll属于Visual C++ 2010运行库,和你本机高版本Visual Studio完全兼容,无需卸载高版本VS:
- 编译32位程序直接安装对应x86版本的Visual C++ 2010可再发行包即可,py2exe编译时会自动识别调用该dll
- 也可单独下载32位版msvcr100.dll,打包时放到生成的exe同级目录一同发布
2. 依赖包(opencv、numpy等)无法安装问题解决
PyPI已经下架了适配Python 3.4的预编译二进制包,直接通过pip在线安装会拉取源码编译失败,可手动下载对应版本的whl包本地安装:
- numpy最后支持Python 3.4的版本为1.16.6,选择cp34、win32对应的whl包
- opencv-python最后支持Python 3.4的版本为3.4.2.17,选择cp34、win32对应的whl包
下载完成后执行pip install 本地whl包路径即可完成安装。
额外注意事项
编译时在py2exe的setup.py配置中开启XP兼容参数,打包完成后建议将所有依赖的运行库文件全部放到生成的dist目录中,避免XP环境运行时出现其他dll缺失问题。
内容的提问来源于stack exchange,提问作者3dSpatialUser
相关产品推荐
相关产品推荐

