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

安装pywhatkit遇DISPLAY KeyError,无法发送WhatsApp消息求助

解决pywhatkit导入时的KeyError: 'DISPLAY'问题

问题原因

pywhatkit内部依赖的GUI组件(比如启动浏览器的相关库)需要读取DISPLAY环境变量,这个变量仅在带图形界面的环境中存在。如果你的运行环境是无桌面服务器、SSH远程终端、Colab这类无图形界面环境,就会触发该错误。

解决方案

根据你的运行环境选择对应方法:

1. 无图形界面的Linux服务器

  • 方法一:用xvfb-run包裹运行命令
    先安装虚拟显示服务器Xvfb:

    sudo apt update && sudo apt install xvfb -y
    

    运行Python脚本时用xvfb-run包裹:

    xvfb-run python your_script.py
    
  • 方法二:在代码中初始化虚拟显示
    先安装pyvirtualdisplay库:

    pip install pyvirtualdisplay
    

    在导入pywhatkit前添加虚拟显示初始化代码:

    from pyvirtualdisplay import Display
    # 创建不可见的虚拟显示
    display = Display(visible=0, size=(1024, 768))
    display.start()
    
    # 正常导入pywhatkit
    import pywhatkit as pwk
    
    # 执行WhatsApp消息发送逻辑
    # pwk.sendwhatmsg("+1234567890", "测试消息", 12, 30)
    
    # 用完后关闭虚拟显示
    display.stop()
    

2. Windows子系统Linux(WSL)

  • 安装Windows端的X服务器(比如VcXsrv),启动时勾选"Disable access control"选项。
  • 在WSL终端中设置DISPLAY变量:
    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
    
  • 之后正常运行Python脚本即可。

3. 本地有图形界面但仍报错

执行echo $DISPLAY检查变量是否存在,若输出为空,手动设置:

export DISPLAY=:0

再运行脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:52:16