Pydroid3中导入pywhatkit失败,报KeyError: 'DISPLAY'错误求助
Pydroid3中pywhatkit导入失败问题解决
问题详情
通过Pip菜单在Pydroid3安装pywhatkit 5.4后,运行以下代码报错:
import pywhatkit pywhatkit.sendwhatmsg("+9195352xxxx5", "Hello ", 14, 10)
报错信息:
Traceback (most recent call last): File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module> start(fakepyfile,mainpyfile) File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start exec(open(mainpyfile).read(), __main__.__dict__) File "<string>", line 2, in <module> File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/pywhatkit/__init__.py", line 16, in <module> from pywhatkit.whats import ( File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/pywhatkit/whats.py", line 7, in <module> import pyautogui as pg File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/pyautogui/__init__.py", line 249, in <module> import mouseinfo File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/mouseinfo/__init__.py", line 223, in <module> _display = Display(os.environ['DISPLAY']) File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/os.py", line 679, in __getitem__ raise KeyError(key) from None KeyError: 'DISPLAY' [Program finished]
原因
报错核心是KeyError: 'DISPLAY'——pywhatkit 5.4依赖的pyautogui、mouseinfo库需要Linux桌面环境的DISPLAY变量,但Android系统的Pydroid3没有这个环境变量,导致依赖库初始化失败。
解决方法
方法1:降级到无桌面依赖的版本
安装pywhatkit 5.3版本,这个版本的WhatsApp模块还没引入pyautogui,不需要桌面环境:
pip install pywhatkit==5.3
方法2:修改现有pywhatkit源码
如果坚持用5.4版本,找到Pydroid3中pywhatkit的whats.py文件(路径参考报错里的/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/pywhatkit/whats.py):
- 删除或注释第7行的
import pyautogui as pg - 注释掉代码中所有使用
pg的部分(比如自动关闭浏览器的代码段)
方法3:换用移动端适配方案
Android环境下,优先考虑WhatsApp官方API,或者适配移动端的第三方消息发送库,避免依赖桌面端自动化工具。
内容的提问来源于stack exchange,提问作者SC Shekar
相关产品推荐
相关产品推荐

