Crontab无法执行脚本排查:pyautogui模块缺失问题
解决Python脚本找不到pyautogui模块及crontab运行问题
问题场景
- 脚本代码:
#!/usr/bin/python3 import pyautogui import random screen_width, screen_height = pyautogui.size() x = random.randint(0, screen_width) y = random.randint(0, screen_height) pyautogui.moveTo(x, y) print("Success!")
- crontab执行条目:
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 /Users/tylerkivelson/Desktop/python/mouse_move_test.py
- 终端运行
./mouse_move_test.py时的错误:
Traceback (most recent call last): File "./mouse_move_test.py", line 3, in <module> import pyautogui ModuleNotFoundError: No module named 'pyautogui'
解决方法
1. 匹配Python版本与pyautogui安装环境
终端执行命令,查看当前Python的模块安装路径:
python3 -m site
若输出的site-packages目录中无pyautogui,说明你可能用了不同Python版本安装模块,导致当前脚本调用的Python找不到它。
2. 用指定Python版本安装pyautogui
直接使用crontab中指定的Python路径安装模块,确保环境完全匹配:
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install pyautogui
3. 验证脚本运行
安装完成后,再次在终端执行脚本:
./mouse_move_test.py
若仍报错,修改脚本开头的shebang为crontab使用的完整Python路径:
#!/Library/Frameworks/Python.framework/Versions/3.11/bin/python3
重新赋予执行权限:
chmod +x mouse_move_test.py
4. Crontab运行额外配置(针对macOS)
crontab的环境与终端不同,且GUI操作需要权限:
- 确保脚本中所有路径均为绝对路径,避免依赖相对路径
- 打开「系统设置」→「隐私与安全性」→「辅助功能」,将终端和
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3添加到允许列表
内容的提问来源于stack exchange,提问作者Teeck
相关产品推荐
相关产品推荐

