有一个在Windows11下编译的Python10 程序,需要适配Windows7 64位。
准备:
anaconda安装python3.8环境。python3.8是最后一个支持Windows7系统的版本
调试程序,把缺少的库都安装上
pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple/
pyinstaller -F main.py -i feb.ico -n Cong_Client.exe --paths=D:\code\feb-client-dev2\fileencryption;D:\code\feb-client-dev2\fileencryption\backup --noconsole --clean
pyinstaller -F server_feb.py -n Cong_Server.exe --paths=D:\code\feb-client-dev2\fileencryption --noconsole --clean
打包后,在Windows7环境下运行报错 : 找不到指定的程序:pywin32_system32
根据网上的经验,需要将虚拟环境下pywin32_system32文件夹复制到对应的Win7系统C:Windows\System32下,试验后无用。
应该是win7系统缺少"KB2533623"导致,打补丁VC_redist.x64.exe后解决该问题。
VC_redist.x64.exe下载
运行继续报错 : ImportError: DLL load failed while importing _rust: 找不到指定的程序,仔细检查_rust 出现在了cryptography这个软件包中,所以应检查cryptography包
pip list 查看cryptography包当前版本是42
卸载 pip uninstall cryptography
安装python3.8对应的版本 pip install cryptography==41.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
重新打包运行 , 问题解决。
运行继续报错提示导入_bcrypt找不到指定的程序
按照以前的思路,查看版本 pip list
当前bcrypt版本是4.2.0,卸载降级安装pip install bcrypt==4.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
重新打包运行正常
另外需要更新Windows7到最新版本。安装C++运行时库。