You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyInstaller打包脚本时遭遇pywintypes.error加载库错误

解决PyInstaller打包32位Python脚本时的LoadLibraryEx错误

嘿,针对你在Windows 10上用32位Python打包脚本时遇到的pywintypes.error: (2, 'LoadLibraryEx', 'The system cannot find the file specified.')错误,我整理了几个针对性的解决方案,都是实际踩坑后验证有效的:

先排查核心依赖的位数匹配问题

你用的是32位Python,所有第三方库必须是32位版本,这是32位环境下打包最容易踩的坑:

  • 先检查你的matplotlib(pylab是它的子模块)、scipy、stl_tools是不是32位的。可以用pip list查看,或者直接重新安装指定平台的版本:
    pip install --platform win32 matplotlib scipy stl_tools --force-reinstall
    
  • 另外,PyInstaller版本要兼容Python2(从你的print和raw_input语句看你用的是Python2.7),建议安装3.6版本的PyInstaller,这是支持Python2的最后几个稳定版:
    pip install pyinstaller==3.6
    

手动补全PyInstaller漏掉的DLL

PyInstaller的自动依赖扫描偶尔会漏掉32位系统DLL或者第三方库的依赖文件,你可以这样排查和补全:

  1. 先开启调试模式,查看具体缺失的文件:
    pyinstaller --debug=imports your_script_name.py
    
    运行后看输出日志,找到提示“找不到”的文件路径,记下来。
  2. 用--add-data参数把缺失的文件打包进去。比如如果缺失的是32位的msvcr90.dll,它在Windows的C:\Windows\SysWOW64目录下(64位系统存放32位系统文件的路径),打包命令就改成:
    pyinstaller --onefile --add-data "C:\Windows\SysWOW64\msvcr90.dll;." your_script_name.py
    
    这里的;.表示把DLL放到exe的同一目录下。

处理stl_tools的特殊依赖

你的脚本用到了text2png,它依赖字体文件和PIL的DLL,这些也容易被PyInstaller漏掉:

  • 手动指定字体文件并打包:比如用系统自带的Arial字体,修改脚本里的text2png调用:
    text2png(text, 'Tempfile', fontsize=90, fontpath='Arial.ttf')
    
  • 然后打包时把字体文件加进去:
    pyinstaller --add-data "C:\Windows\Fonts\Arial.ttf;." your_script_name.py
    

先尝试非单文件模式排查

有时候--onefile模式会导致DLL加载路径混乱,先试试打包成文件夹模式:

pyinstaller your_script_name.py

然后去生成的dist文件夹里运行exe,如果能正常运行,说明问题出在单文件模式的路径处理上,再回到前面的步骤调整参数。


内容的提问来源于stack exchange,提问作者Nirvrex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:40:36