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

PyInstaller打包含Twilio的Python项目提示模块缺失问题求助

解决PyInstaller打包Twilio模块缺失问题

问题描述

使用PyInstaller或auto-py-to-exe打包包含Twilio库的Python项目时,生成的exe执行报错:

No module named 'twilio' [19300] Failed to execute script 'pcONpcesc' due to unhandled exception!

直接运行Python脚本正常,能完成邮件、WhatsApp及MQTT消息发送;尝试过虚拟环境/非虚拟环境打包,也使用过pyinstaller --onefile --hidden-import twilio.rest pcONpcesc.py命令,错误依旧,且requirements.txt已包含Twilio依赖。

解决方案

  • 添加完整的Twilio隐藏导入
    仅指定twilio.rest可能无法覆盖Twilio的所有子模块依赖,尝试直接导入整个Twilio模块及核心子模块:

    pyinstaller --onefile --hidden-import twilio --hidden-import twilio.rest --hidden-import twilio.base --hidden-import twilio.http pcONpcesc.py
    

    这样能确保PyInstaller捕获到Twilio运行所需的全部内部模块。

  • 通过.spec文件手动配置依赖

    1. 先生成基础的.spec配置文件:
      pyinstaller --onefile pcONpcesc.py
      
    2. 打开生成的pcONpcesc.spec文件,找到hiddenimports字段,添加Twilio相关模块:
      a = Analysis(
          ['pcONpcesc.py'],
          pathex=[],
          binaries=[],
          datas=[],
          hiddenimports=['twilio', 'twilio.rest', 'twilio.base', 'twilio.http', 'twilio.jwt'],
          hookspath=[],
          hooksconfig={},
          runtime_hooks=[],
          excludes=[],
          noarchive=False,
      )
      
    3. 基于修改后的.spec文件重新打包:
      pyinstaller pcONpcesc.spec
      

    这种方式能精准控制打包依赖,避免PyInstaller自动分析遗漏模块。

  • 确保打包环境与运行环境一致
    确认打包时使用的Python解释器和运行脚本的是同一个:

    • 若使用虚拟环境,先激活环境再执行打包命令
    • 系统存在多Python版本时,明确指定版本(如py -3.10 -m PyInstaller ...或python3.10 -m PyInstaller ...),防止误用到未安装Twilio的环境
  • 清理缓存后重新打包
    PyInstaller的缓存可能保留旧的依赖配置,导致问题重复出现:

    1. 删除打包生成的build、dist文件夹及.spec文件
    2. 重新执行打包命令,确保是全新的打包流程
  • 指定Twilio安装路径(若需)
    执行pip show twilio查看Twilio的安装位置,如果路径非标准,打包时用--paths参数指定:

    pyinstaller --onefile --paths /your/twilio/install/path pcONpcesc.py
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:15:15