python - 用于运行脚本的crontab

Lac*_*cer 8 python crontab

我是python的新手,我正在尝试通过python脚本创建一个cronjob,但我不断收到错误.任何帮助将非常感谢它,告诉我我做错了什么?

谢谢

python脚本

from crontab import CronTab

cron = CronTab(user=True)

job = cron.new(command='python /Users/<useraccount>/Desktop/my_script.py')
job.minute.on(2)
job.hour.on(12)

cron.write()
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "/Users/<useraccount>/Desktop/01-python-crontab.py", line 3, in <module>
    cron = CronTab(user=True)
TypeError: __init__() got an unexpected keyword argument 'user'
Run Code Online (Sandbox Code Playgroud)

Lac*_*cer 6

这是问题:

出现错误:TypeError:init()只接受2个参数

documentaton:https://pypi.python.org/pypi/python-crontab帮助解决了这个问题.

原因:1 - crontab安装不是python-crontab

这是完成的代码:

def main(): 
    from crontab import CronTab

    cron = CronTab(user=True)

    job = cron.new(command='python /opt/my_script.py')
    job.minute.on(2)
    job.hour.on(12)

    cron.write()

if __name__ == "__main__":
  main()
Run Code Online (Sandbox Code Playgroud)


Ana*_*mar 2

您可能正在使用旧版本的 crontab(请参阅此处 1.4.1的文档)。您可以使用 - 升级到最新版本的 python-crontab

pip install python-crontab --upgrade
Run Code Online (Sandbox Code Playgroud)

或者从这里下载1.9.3版本并安装。

如果你想使用旧版本,你可以传入作为username参数,示例 -

cron = CronTab('<username>')
Run Code Online (Sandbox Code Playgroud)

  • 我使用的是 crontab-0.21.3 而不是 python-crontab。必须“pip uninstall crontab”,然后安装新版本。谢谢。 (2认同)