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

Python3.10打包exe遇ModuleNotFoundError: No module named 'aiohttp'求助

解决打包Python3.10代码为.exe时的ModuleNotFoundError: No module named 'aiohttp'问题

以下是几种针对性的解决方案,按优先级尝试:

  • 确保在虚拟环境内执行打包操作
    激活你的项目虚拟环境,先在环境内安装PyInstaller(避免用全局环境的PyInstaller导致找不到虚拟包):

    # Windows
    venv\Scripts\activate
    # macOS/Linux
    source venv/bin/activate
    
    pip install pyinstaller
    

    之后再执行打包命令,确保打包工具能读取到虚拟环境里的aiohttp。

  • 用--hidden-import强制指定导入模块
    PyInstaller可能无法自动检测到aiohttp这类包含动态导入的库,打包时显式声明:

    pyinstaller --onefile --hidden-import aiohttp your_main_script.py
    

    如果仍有问题,可以尝试添加aiohttp的子模块(比如--hidden-import aiohttp.web),根据报错信息调整。

  • 清理PyInstaller缓存后重新打包
    删除打包生成的build、dist目录和.spec文件,这些缓存文件可能残留旧的依赖信息,删除后重新执行打包命令。

  • 通过.spec文件手动配置依赖
    先生成.spec文件:

    pyinstaller your_main_script.py
    

    打开生成的.spec文件,找到hiddenimports参数,添加'aiohttp':

    a = Analysis(
        ['your_main_script.py'],
        pathex=[],
        binaries=[],
        datas=[],
        hiddenimports=['aiohttp'],  # 这里添加
        hookspath=[],
        hooksconfig={},
        runtime_hooks=[],
        excludes=[],
        win_no_prefer_redirects=False,
        win_private_assemblies=False,
        cipher=block_cipher,
        noarchive=False,
    )
    

    再用.spec文件重新打包:

    pyinstaller your_main_script.spec
    
  • 重新确认虚拟环境内的包安装
    激活虚拟环境后运行pip list,确认aiohttp 3.8.1确实在已安装包列表中。如果缺失,重新安装:

    pip install aiohttp==3.8.1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:21:46