本文共 688 字,大约阅读时间需要 2 分钟。
Pyinstaller打包成的exe文件运行依赖操作系统。32位exe可以在32位与64位系统运行,而64位exe仅限运行于64位环境中。
因工作需求,电脑需安装32位Python3.8。经历了诸多波折,电脑上Python版本混乱不堪。尝试将vscode解释器设置为32位Python3.8时,编译出现错误:"ImportError: DLL load failed while importing win32api: %1 不是有效的 Win32 应用程序。"这源于库(wmi)安装的是64位版本,而新装的32位Python与之前版本存在纠缠,导入仍用64位库导致失败。
经过查阅资料,首先清理电脑上无关的Python版本。注意到C盘Roaming文件夹中有奇怪的python文件夹,疑为pip导向处,决定彻底删除相关文件。
使用pip list发现所有库已恢复至解放前状态,决定重新安装。为区别新旧版本,32位Python将Scripts中pip.exe改名为pip32.exe,并复制外部python.exe为python32.exe,以解决pip找不到Python.exe的问题。
运行cmd命令验证路径,确认所有指令正确指向。通过pip32安装必要库后,在vscode中运行无误。
打包时发现,尽管已添加PATH,但Pyinstaller只在64位Python文件夹搜索,导致错误。查阅资料,找到解决方法:使用指定32位Python版本运行Pyinstaller。
最终,使用"python32 -m Pyinstaller -F readID.py"命令成功打包。
转载地址:http://xjofk.baihongyu.com/