PyAutoGUI代码在VSCode运行正常,单独执行.py报错找不到button.png
问题原因
出现这个差异是因为两种运行方式的**当前工作目录(CWD)**不一样:
- VS Code运行Python脚本时,默认会把你打开的工作区目录设为当前工作目录,刚好你的代码和
button.png都在这个目录下,用相对路径可以正常读取 - 直接双击运行.py文件、或者在其他目录下通过命令行运行脚本时,系统默认的当前工作目录不是脚本存放的目录,相对路径
'button.png'会在当前工作目录下找文件,自然就找不到报错
解决方案
不需要写死固定全路径(写死全路径会导致项目迁移、换设备运行时直接失效,非常不推荐),也没有遗漏额外配置,只需要动态获取脚本自身所在目录,拼接得到图片的绝对路径即可,代码示例如下:
import os import pyautogui # 获取当前脚本文件所在的绝对目录 script_root = os.path.dirname(os.path.abspath(__file__)) # 拼接得到button.png的完整路径,兼容Windows/macOS/Linux的路径格式 img_path = os.path.join(script_root, 'button.png') buttonlocation = pyautogui.locateCenterOnScreen(img_path)
如果你不想修改代码,也可以在运行脚本前,先通过命令行cd到脚本所在的文件夹,再执行python 你的脚本名.py,也能正常读取到图片。
内容的提问来源于stack exchange,提问作者Nico1300
相关产品推荐
相关产品推荐

