2011-09-21 6 views
0

Je suis en cours d'exécution d'un script python simple d'envoyer des données à un mongodbdes problèmes en utilisant cron pour exécuter un script pymongo

#!/usr/bin/env python 

import sys 
import time 
from datetime import datetime 
import pymongo 
from pymongo import Connection 

today = { 'date and time' : datetime.today() } 

connection = Connection() 
db = connection.tests 
collection = db.times 

collection.insert(today) 

Et je suis en train d'utiliser pour planifier cette Cron chaque minute. Je l'ai utilisé crontab pour définir cette

* * * * * /Users/MyUser/XX/YY/ZZ/timetest.py 

Et je peux exécuter ce parfaitement en utilisant python timetest.py à partir du répertoire correct; Cependant, le programme ne fonctionne toujours pas seul. Je sens que je suis très proche de l'obtenir au travail, quelqu'un peut-il m'aider avec cela?

+0

est en cours d'exécution /Users/MyUser/XX/YY/ZZ/timetest.py au travail invite du shell? – Mark

+0

Non, cela ne fonctionne pas. La sortie est 'commande non trouvée'. – crunkchitis

+1

Avez-vous essayé avec 'python/Utilisateurs/MyUser/XX/YY/ZZ/timetest.py'? –

Répondre

1

Il est probable que l'environnement cron ne corresponde pas à l'environnement de votre utilisateur. En Cron vous pouvez définir la variable de chemin dans crontab

PATH=$PATH:/usr/bin 
* * * * * /Users/MyUser/XX/YY/ZZ/timetest.py 

ou vous pouvez simplement appeler explicitement le binaire python sur votre script

* * * * * /usr/bin/python /Users/MyUser/XX/YY/ZZ/timetest.py 

ou vous pouvez définir la ligne de tralala dans votre script pour référencer le binaire explicitement python (cela peut ne pas être souhaitable si vous utilisez jamais virtualenv)

#!/usr/bin/python 
... 
Questions connexes