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

使用PyInstaller打包exe时出现No module named 'pyautogui'错误求助

解决PyInstaller打包exe时缺失pyautogui模块的问题

第一步:确保虚拟环境干净且依赖正确

  • 删除之前打包生成的build、dist文件夹和main.spec文件,避免缓存干扰
  • 重新创建并激活虚拟环境,只安装项目必须的依赖:
    pip install pyinstaller pyautogui
    
    (如果main.py还用到其他库,仅安装必要的,不要冗余安装)
  • 先在虚拟环境里运行python main.py,确认代码能正常执行,排除代码本身的依赖问题

第二步:用spec文件手动配置依赖(比命令行参数更可靠)

  • 生成spec文件:
    pyi-makespec --onefile --noconsole main.py
    
  • 打开生成的main.spec文件,找到hiddenimports行,修改为:
    hiddenimports=['pyautogui', 'pyscreeze', 'pygetwindow', 'mouseinfo', 'pyrect', 'pymsgbox'],
    
    (pyautogui依赖这些子模块,PyInstaller自动扫描时经常漏检)
  • 用spec文件打包:
    pyinstaller main.spec
    

第三步:如果还是不行,强制收集pyautogui的所有文件

  • 方法一:用--collect-all参数打包:
    pyinstaller --onefile --noconsole --collect-all pyautogui main.py
    
  • 方法二:在spec文件里添加收集逻辑:
    在spec文件开头导入:
    from PyInstaller.utils.hooks import collect_all
    
    然后在datas后添加:
    datas += collect_all('pyautogui')[0],
    
    再运行pyinstaller main.spec

额外注意事项

  • 打包前确认终端已激活虚拟环境:Windows看命令行开头的(venv)标识,Linux/mac看提示符,或用where python(Windows)/which python(Linux/mac)检查Python路径是否指向虚拟环境
  • 体积优化:虚拟环境只装必要依赖是核心,还可加--clean参数清理PyInstaller缓存;尝试用UPX压缩(先安装UPX,打包时加--upx-dir <UPX路径>),但部分库可能不兼容UPX,需测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 20:12:41