Python 3.9下PyAutoGUI的locateOnScreen函数报错需安装Pillow
故障排查步骤
- 环境路径不匹配问题(最高发原因)
重装Python、更新PATH后仍报错,本质大多是依赖安装路径和当前运行脚本的解释器不匹配。全局pip命令可能会将包装到系统残留的旧Python、其他虚拟环境目录下,和当前执行脚本的解释器完全不互通。
执行以下校验操作:- 在运行目标Python代码的同一终端内,执行
python -c "import sys; print(sys.executable)",确认打印的路径是你实际使用的Python 3.9安装目录,排除其他解释器抢优先级的问题。 - 使用步骤1打印的完整解释器路径调用pip重装所有依赖,彻底规避装错环境的问题。比如打印路径为
C:\Python39\python.exe,就依次执行:C:\Python39\python.exe -m pip uninstall Pillow pyautogui opencv-python numpy -y C:\Python39\python.exe -m pip install Pillow opencv-python numpy pyautogui
- 在运行目标Python代码的同一终端内,执行
- 版本兼容性问题
旧版本PyAutoGUI存在Pillow检测逻辑缺陷:即使安装了10.0及以上版本的Pillow,也会误报“需要安装Pillow”的错误。上述步骤中直接安装最新稳定版PyAutoGUI即可修复该问题;如果临时需要使用旧版本PyAutoGUI,就将Pillow降级到兼容版本:C:\Python39\python.exe -m pip install "Pillow==9.5.0" - 代码本身的语法/逻辑问题
提供的示例代码存在多处问题,容易和依赖报错混淆:pyautogui.doubleClick(cord)行首多余缩进、代码末尾多余单引号,会直接触发语法报错,先修正代码格式问题。locateOnScreen如果在当前屏幕找不到匹配的chrome.png素材,会返回None,直接将None传入doubleClick方法会触发运行错误。建议增加存在性判断后再执行点击操作:import pyautogui cord = pyautogui.locateOnScreen('chrome.png') if cord: pyautogui.doubleClick(cord)
- 最终有效性验证
所有依赖重装完成后,在同一终端执行校验命令,确认Pillow可被正常调用:
能正常打印版本号的前提下再运行业务代码,原有的Pillow依赖报错即可消除。python -c "from PIL import Image; print('Pillow版本:', Image.__version__)"
内容的提问来源于stack exchange,提问作者ictwinner
相关产品推荐
相关产品推荐

