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

PyInstaller生成超大exe文件求助:仅导入Flask模块却达319MB

解决PyInstaller打包Flask项目体积过大问题

问题描述

我的代码仅导入了Flask的三个模块:

from flask import Flask, request, jsonify

但用pyinstaller --onefile myFile.py打包后生成的可执行文件有319MB,而相同Conda环境、相同.spec配置的朋友打包我的代码只有9MB,PyInstaller还莫名包含了Matplotlib这类未用到的模块。

解决方案

  • 创建干净的虚拟环境
    Conda环境中大量无关模块可能导致PyInstaller误打包依赖。建议用venv创建仅包含Flask和PyInstaller的干净环境:

    python -m venv flask-env
    # Windows激活环境
    flask-env\Scripts\activate
    # Linux/macOS激活环境
    source flask-env/bin/activate
    pip install flask pyinstaller
    

    之后在该环境下重新打包。

  • 手动排除无关模块
    修改.spec文件,在Analysis部分添加exclude_modules参数,明确排除未使用的模块:

    a = Analysis(
        ['myFile.py'],
        pathex=[],
        binaries=[],
        datas=[],
        hiddenimports=[],
        hookspath=[],
        hooksconfig={},
        runtime_hooks=[],
        excludes=['matplotlib', 'numpy'], # 按需添加要排除的模块
        win_no_prefer_redirects=False,
        win_private_assemblies=False,
        cipher=block_cipher,
        noarchive=False,
    )
    

    执行pyinstaller myFile.spec重新打包。

  • 排查依赖检测逻辑
    运行pyinstaller --debug=imports myFile.py,查看PyInstaller实际检测到的依赖列表,定位被误引入的模块后针对性排除。

  • 清理缓存后打包
    打包时添加--clean参数,清除过往缓存文件,避免旧依赖残留:

    pyinstaller --onefile --clean myFile.py
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:17:35