如何解决在Mac上使用pyautogui模块时Crontab错误
我正在Mac终端上运行以下命令(场景1),我得到了所需的输出
场景1
/Users/pd186040/OneDrive\ \-\ \Teradata/Documents/POC/Webex/webex.sh >> /Users/pd186040/Downloads/script_output.log 2>&1
但是在通过crontab调度命令时,方案2会引发错误
方案2
*/10 * * * * export PATH=/Users/pd186040/opt/anaconda3/bin/:$PATH && python /Users/pd186040/OneDrive\ \-\ \Teradata/Documents/POC/Webex/webex1.sh >> /Users/pd186040/Downloads/script_output.log 2>&1
错误:
Traceback (most recent call last):
File "/Users/pd186040/OneDrive - Teradata/Documents/POC/Webex/webex1.py",line 21,in <module>
button = pyautogui.locateCenterOnScreen('/Users/pd186040/OneDrive - Teradata/Documents/POC/Webex/app.png',grayscale=False)
File "/Users/pd186040/opt/anaconda3/lib/python3.7/site-packages/pyautogui/__init__.py",line 175,in wrapper
return wrappedFunction(*args,**kwargs)
File "/Users/pd186040/opt/anaconda3/lib/python3.7/site-packages/pyautogui/__init__.py",line 207,in locateCenterOnScreen
return pyscreeze.locateCenterOnScreen(*args,**kwargs)
File "/Users/pd186040/opt/anaconda3/lib/python3.7/site-packages/pyscreeze/__init__.py",line 400,in locateCenterOnScreen
coords = locateOnScreen(image,line 359,in locateOnScreen
screenshotIm = screenshot(region=None) # the locateAll() function must handle cropping to return accurate coordinates,so don't pass a region here.
File "/Users/pd186040/opt/anaconda3/lib/python3.7/site-packages/pyscreeze/__init__.py",line 446,in _screenshot_osx
subprocess.call(['screencapture','-x',tmpFilename])
File "/Users/pd186040/opt/anaconda3/lib/python3.7/subprocess.py",line 339,in call
with Popen(*popenargs,**kwargs) as p:
File "/Users/pd186040/opt/anaconda3/lib/python3.7/subprocess.py",line 800,in __init__
restore_signals,start_new_session)
File "/Users/pd186040/opt/anaconda3/lib/python3.7/subprocess.py",line 1551,in _execute_child
raise child_exception_type(errno_num,err_msg,err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'screencapture': 'screencapture'
Webex.sh在python脚本下调用
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
"""
Created on Thu Aug 27 18:39:22 2020
@author: pd186040
"""
import pyautogui
import time
while True:
button = pyautogui.locateCenterOnScreen('/Users/pd186040/OneDrive - Teradata/Documents/POC/Webex/app.png',grayscale=False)
if button != None:
x = button[0] / 2
y = button[1] / 2
pyautogui.moveTo(x,y)
pyautogui.click(clicks = 2)
pyautogui.click()
print("Clicked {0}".format('/Users/pd186040/OneDrive - Teradata/Documents/POC/Webex/app.png'))
break
else :
print("Application is currently running")
break
time.sleep(3)
button = pyautogui.locateCenterOnScreen('/Users/pd186040/OneDrive - Teradata/Documents/POC/Webex/refresh.png',grayscale=False)
x = button[0] / 2
y = button[1] / 2
pyautogui.moveTo(x,y)
pyautogui.click(clicks = 2)
pyautogui.click()
print("Meetings Refreshed")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。