无法使用 pyautogui 作为 Cron 作业运行 python 脚本

问题描述

我一直在寻找解决此问题的各种方法,但找不到任何有效的方法

我可以看到脚本正在通过调试运行,但 pyautogui 函数没有通过 Cron 运行。我可以通过 cli 确认脚本按预期运行,并且 cron 可以看到 pyautogui 模块。

这就是我用于测试的 cron 作业的样子。

* * * * * cd /Users/joeblogs && python3 ./mouse.py >> /Users/joeblogs/debug.txt 2>&1

这是我正在使用的脚本,它是一个非常简单的脚本,它检查鼠标坐标,然后等待 5 秒钟并再次检查。如果坐标匹配鼠标通过pyautogui移动,如果它们不匹配则程序退出

#!/usr/bin/env python3
import pyautogui
import time
import sys

def MovMouse():

        prev = pyautogui.position() #Grabs X,Y mouse position
        #print("position X1 is",prev[0])
        #print("position Y1 is",prev[1])

        time.sleep(5)

        after = pyautogui.position() #Grabs second X,Y position after 3 seconds

        #print("position X2 is",after[0])
        #print("position Y2 is",after[1])

        if (prev == after):
            print ("!!! MOVE MOUSE !!!")
            pyautogui.moveRel(200,200)
            #postmove = pyautogui.position
            #print("position X3 is",postmove[0])
            #print("position Y3 is",postmove[1])
        else:
            print("Mouse does not need to be moved")
            sys.exit(0)


MovMouse()

我看过类似 this one 之类的帖子,但并不高兴。

任何帮助都会很棒,因为这个问题已经困扰我一段时间了!

仅供参考,我在撰写本文时使用的是最新版本的 python3,并在 MacOS 中运行。

解决 - 我需要在 MacOS 设置中允许访问 cron 和我的终端,现在它可以正常工作了!

解决方法

已解决 - 我需要在 MacOS 设置中允许访问 cron 和我的终端,现在它可以正常工作了!