2015-07-16 21 views
5

Sono abbastanza nuovo per Python e sto cercando di creare un cronjob attraverso uno script python ma continuo a ricevere un errore. Qualsiasi aiuto sarebbe molto apprezzato per mostrarmi cosa sto facendo male?python - crontab per eseguire uno script

grazie

Script 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() 

Errori:

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' 
+0

Sembra dare l'argomento 'utente = true' non è valido. Hai esaminato la documentazione per il modulo 'crontab'? – DanielGibbs

risposta

2

Si può utilizzare una vecchia versione di crontab (Vedi - Documentazione per 1.4.1 here). Si sia possibile effettuare l'aggiornamento alla versione più recente di python-crontab utilizzando -

pip install python-crontab --upgrade 

o scaricare la versione 1.9.3 da here e installarlo.

Se si desidera utilizzare la vecchia versione, è possibile passare in username come argomento, Esempio -

cron = CronTab('<username>') 
+1

Stavo usando crontab-0.21.3 invece di python-crontab. Dovuto 'pip disinstallare crontab' e quindi installare la nuova versione. Grazie. –

3

qui era i problemi:

errore sono presentati: TypeError: init() prende esattamente 2 argomenti

documentaton: https://pypi.python.org/pypi/python-crontab aiutato a risolvere il problema.

Motivo: 1 - crontab è stato installato non python-crontab

Ecco il codice completo:

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()