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

使用pyinstaller打包脚本后运行提示ImportError: No module named decorator错误

报错根因

你遇到的是PyInstaller打包时的隐式依赖遗漏问题:PyInstaller 3.5对Python 2.7的依赖扫描逻辑无法识别traitlets/IPython依赖链里隐式导入的decorator模块,即使本地环境已安装该模块,打包时也不会将其打入最终的exe文件,运行时就会抛出找不到模块的错误。

解决方案

按优先级尝试以下两种方法即可解决:

方法1:打包命令显式指定隐式导入(最快)

直接在原打包命令中添加--hidden-import参数声明要强制导入decorator模块,修改后的命令如下:

pyinstaller --onefile --hidden-import decorator myprogram.py

重新打包后运行exe即可。

方法2:通过spec配置文件指定(适合同类报错多的场景)

如果后续还有多个同类隐式导入报错,可以用spec文件统一配置:

  • 先运行一次原打包命令,生成和脚本同名的myprogram.spec配置文件
  • 打开该文件,找到hiddenimports配置项,将decorator添加到列表中:
    hiddenimports = ['decorator']
    
  • 基于spec文件重新打包:
    pyinstaller myprogram.spec
    
注意事项
  • 打包前确认你当前处于对应的Python 2.7.17虚拟环境中,执行pyinstaller --version确认调用的是3.5版本的PyInstaller,避免调用到系统其他环境的PyInstaller导致依赖引入错误
  • 如果后续再出现其他ImportError: No module named xxx报错,只要确认本地环境已安装对应模块,都可以用上述两种方法把xxx模块添加到隐式导入列表中解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:54:02