You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mac上通过launchd每日定时执行Python脚本?

在Mac上配置每日7点运行Python脚本的定时任务

一、先搞定两个关键路径

首先得确认两个核心路径,不然定时任务找不到要运行的东西:

  • Python解释器路径:打开终端,输入which python3或者which python,终端会输出类似/usr/local/bin/python3的路径,这就是你要用到的Python执行路径。
  • 脚本存放路径:把你的Python脚本放到一个固定文件夹里(比如用户目录下新建个Scripts文件夹),比如~/Scripts/nightly_task.py。然后在终端输入realpath ~/Scripts/nightly_task.py,就能得到完整的绝对路径,比如/Users/你的用户名/Scripts/nightly_task.py。

二、用Mac原生launchd配置定时任务

launchd是Mac自带的定时任务管理工具,稳定性比第三方工具强,步骤如下:

  1. 创建plist配置文件
    打开文本编辑器(比如TextEdit,记得切换到纯文本模式),复制下面的代码,把里面的路径替换成你刚才查到的实际路径:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.yourname.nightlyscript</string> <!-- 改成唯一标识,比如你的名字+脚本名 -->
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/python3</string> <!-- 替换成你的Python路径 -->
        <string>/Users/你的用户名/Scripts/nightly_task.py</string> <!-- 替换成你的脚本绝对路径 -->
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>19</integer> <!-- 19点对应晚上7点 -->
        <key>Minute</key>
        <integer>0</integer> <!-- 整点运行 -->
    </dict>
    <!-- 可选:添加日志路径,方便后续监控 -->
    <key>StandardOutPath</key>
    <string>/Users/你的用户名/Scripts/script_out.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/你的用户名/Scripts/script_err.log</string>
</dict>
</plist>

保存文件,命名要和里面的Label一致(比如com.yourname.nightlyscript.plist),然后把文件放到~/Library/LaunchAgents/目录下(这是用户级任务目录,不需要管理员权限)。

  1. 加载并启动任务
    打开终端,依次输入这几个命令:
  • 加载配置:launchctl load ~/Library/LaunchAgents/com.yourname.nightlyscript.plist
  • 确认加载成功:launchctl list | grep com.yourname.nightlyscript
    如果输出任务的PID等信息,说明加载没问题。
  1. 后续管理命令
  • 临时停止任务:launchctl stop com.yourname.nightlyscript
  • 卸载任务(不想用了):launchctl unload ~/Library/LaunchAgents/com.yourname.nightlyscript.plist

三、监控任务运行情况

  1. 日志查看
    刚才配置的StandardOutPath和StandardErrorPath会记录脚本的正常输出和错误信息。可以直接打开日志文件查看,或者在终端用tail -f /Users/你的用户名/Scripts/script_out.log实时刷新查看最新输出。

  2. 系统控制台查触发记录
    打开Mac自带的「控制台」应用,在搜索框输入你plist里的Label(比如com.yourname.nightlyscript),就能看到launchd关于这个任务的启动、停止日志,判断任务是否按时触发。

  3. 脚本内加运行标记
    可以在你的Python脚本里加一行代码,每次运行时写入时间戳到记录文件:

from datetime import datetime
with open("/Users/你的用户名/Scripts/run_record.txt", "a") as f:
    f.write(f"脚本运行时间:{datetime.now()}\n")

每天7点后打开这个记录文件,就能确认脚本是否真的执行了。


内容的提问来源于stack exchange,提问作者Cauder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:45:49