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

安卓Pydroid3使用pywhatkit实现WhatsApp自动化报DISPLAY KeyError如何解决

报错原因

KeyError: 'DISPLAY' 报错的核心原因是pywhatkit依赖pyautogui桌面GUI自动化库,该库运行需要X11显示服务支持,对应系统需要存在DISPLAY环境变量。安卓默认没有X11服务,不管是Pydroid3还是默认配置的Termux都不满足该依赖要求,所以导入阶段直接触发报错。

可行解决方案

方案1:调用本地WhatsApp客户端发送(最稳定,推荐)

利用Termux的termux-api工具直接调用安卓系统安装的WhatsApp应用发消息,完全不需要浏览器或者GUI依赖。
操作步骤:

  • 安装和Termux配套的Termux API安卓APP
  • 打开Termux终端执行以下命令安装依赖:
pkg update && pkg install termux-api python
pip install termux-api
  • 编写发送脚本,示例代码:
import os
# 替换为目标手机号、发送内容即可
os.system('termux-send-sms -n "+9176xxxxxx18" -c "hello" -s com.whatsapp')

方案2:使用无GUI的WhatsApp Web协议库(不需要调用本地APP)

不需要依赖桌面环境,直接对接WhatsApp Web底层协议实现消息发送,Pydroid3和Termux都可运行。
如果愿意申请WhatsApp Cloud API开发者凭证,可以使用pywa库:

  • 安装命令:pip install pywa
  • 脚本示例:
from pywa import WhatsApp
# 替换为你在WhatsApp开发者平台申请的凭证,首次使用扫码登录
wa = WhatsApp(phone_id="你的绑定手机号", api_token="你的API令牌")
wa.send_message(
    to="+9176xxxxxx18",
    text="hello"
)

如果不想申请开发者凭证,可以改用whatsapp-web.py库,安装命令pip install whatsapp-web.py,首次运行扫码登录即可使用,不需要额外申请权限。

方案3:修复pywhatkit运行环境(不推荐,稳定性差)

如果一定要用pywhatkit,可以给安卓安装X11服务满足依赖:

  • 应用商店安装XServer XSDL APP,打开后保持后台运行,记录显示的DISPLAY地址(通常为127.0.0.1:0)
  • 运行脚本前在终端执行命令:export DISPLAY=127.0.0.1:0
  • 再运行原有test.py脚本
    该方案兼容性较差,就算导入成功,后续模拟点击浏览器操作也大概率失效,仅作参考。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:51:00