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

使用crontab运行Python工时表生成脚本失败问题求助

问题

本地运行基于Word模板生成工时表的Python脚本能正常生成文件,但通过crontab定时执行时毫无结果。脚本及crontab配置如下:

脚本代码

import random
from docxtpl import DocxTemplate
from datetime import datetime

dateNow = datetime.today().strftime("%d.%m.%y")

jobs = ["job1", "job2", "job3"]

doc = DocxTemplate("Template.docx")
mon = random.choice(jobs)
tue = random.choice(jobs)
wed = random.choice(jobs)
thur = random.choice(jobs)
fri = random.choice(jobs)

context = {'mon' : mon, 'tue' : tue, 'wed' : wed, 'thur' : thur, 'fri' : fri, 'date' : dateNow}

doc.render(context)

doc.save(r'/Users/pathToSaveLocation/' + "{}".format(dateNow) + ".docx")

crontab配置

***** python absolutePathToScript/main.py

注:5个*是测试用,用的是Mac系统,本人是Python新手。

已尝试过的操作:改用绝对路径、更换脚本所在文件夹、检查终端操作权限、测试crontab能执行其他任务(比如播放声音),但都没解决问题。

排查与解决步骤

1. 修正crontab时间格式

你的crontab格式错误,5个*之间必须用空格分隔,正确格式是:

* * * * * python absolutePathToScript/main.py

这样脚本会每分钟执行一次,先把格式改对再说。

2. 指定Python解释器的绝对路径

crontab的环境变量和终端不一样,大概率找不到你平时用的Python版本。先在终端执行which python或者which python3(如果用的是Python3),拿到绝对路径,比如/usr/local/bin/python3,然后替换crontab里的python:

* * * * * /usr/local/bin/python3 absolutePathToScript/main.py

3. 给模板文件用绝对路径

脚本里DocxTemplate("Template.docx")用的是相对路径,crontab执行时的工作目录不是脚本所在的文件夹,肯定找不到模板。把模板路径改成绝对路径,比如:

doc = DocxTemplate("/Users/你的用户名/模板所在路径/Template.docx")

4. 检查保存路径的权限和正确性

先确认/Users/pathToSaveLocation/这个路径确实存在,而且crontab运行的用户有写入权限。保险起见,可以把保存路径改成用户目录下的文件夹,比如/Users/你的用户名/Documents/。

5. 记录运行日志找错误

让crontab把脚本的输出和错误信息写到日志文件里,方便排查问题。修改crontab配置:

* * * * * /usr/local/bin/python3 absolutePathToScript/main.py >> /Users/你的用户名/cron_logs.txt 2>&1

执行后打开cron_logs.txt,里面会显示脚本运行时的错误(比如找不到模块、路径不存在之类的)。

6. 确保依赖包安装在crontab用的Python环境里

如果docxtpl是装在虚拟环境或者特定Python版本下的,crontab用的Python可能找不到这个包。要么指定虚拟环境的Python路径,要么用对应版本的pip重新装依赖:
比如用Python3的话,执行/usr/local/bin/python3 -m pip install docxtpl。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:33:17