如何在conda环境中设置Python脚本每隔n分钟定时运行?
操作步骤
第一步:获取目标conda环境的Python解释器绝对路径
这一步是避免crontab找不到conda环境的核心,不要直接用python命令调用
- 打开终端,激活你日常使用的conda环境:
conda activate 你的conda环境名称 - 执行命令获取解释器路径:
which python,将输出的路径完整复制保存,示例路径格式:/Users/你的用户名/opt/anaconda3/envs/你的环境名/bin/python
第二步:预测试运行有效性
提前测试避免后续定时任务出错
- 找到
getData.py的绝对路径,示例:/Users/你的用户名/work/scripts/getData.py - 直接在终端执行组合命令验证运行正常:
/Users/你的用户名/opt/anaconda3/envs/你的环境名/bin/python /Users/你的用户名/work/scripts/getData.py,确认没有报错再进行下一步
第三步:配置crontab定时规则
- 终端执行
crontab -e打开crontab编辑界面(首次使用会提示选择编辑器,推荐选nano,操作门槛更低) - 在编辑界面末尾添加如下内容,注意把路径替换成你自己的实际路径:
*/10 * * * * /Users/你的用户名/opt/anaconda3/envs/你的环境名/bin/python /Users/你的用户名/work/scripts/getData.py >> /Users/你的用户名/work/scripts/crontab_run.log 2>&1
- 各部分说明:
*/10 * * * *是定时规则,代表每隔10分钟执行一次- 末尾的
>> /Users/你的用户名/work/scripts/crontab_run.log 2>&1是把脚本的运行输出、报错信息都写入指定日志文件,方便后续排查问题,日志路径可自行指定
- 保存退出:如果用nano编辑器,按
Ctrl+O回车确认保存,再按Ctrl+X退出,看到终端提示crontab: installing new crontab即配置生效
常见问题处理
如果定时任务没有正常运行,优先查看你设置的日志文件排查问题,90%的异常都是路径错误导致:
- 如果你的脚本里用了相对路径读取其他资源文件,要么把脚本内的所有路径改成绝对路径,要么在crontab命令里先切换到脚本目录再执行,示例写法:
*/10 * * * * cd /Users/你的用户名/work/scripts && /Users/你的用户名/opt/anaconda3/envs/你的环境名/bin/python getData.py >> crontab_run.log 2>&1
内容的提问来源于stack exchange,提问作者Ananth
相关产品推荐
相关产品推荐

