Comment utiliser Macports Python dans un travail de cron?

J'ai installé Python 2.7 par des ports mac, et je veux maintenant l'utiliser dans un travail cron. Malheureusement, à chaque fois que le travail cron est impliqué, le Python standard de ma machine (un iBook G4 utilisant Tiger) qui est 2.3 est impliqué, ce qui rend mon travail échouer.

Mon PATH est (à partir de la command set )

 PATH=/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin 

P

Comment puis-je avoir mon travail cron être invoqué avec mon PATH au lieu de celui défectueux?

Le résultat de la variable PATH est assez différent dans le monde cron . Appelez le script avec le path complet vers le binary Python (par exemple /opt/local/bin/python2.7) et vous devriez être bon.

Cela peut être examiné en exécutant env tant que cronjob et en le comparant au résultat de l'exécution d' env comme vous-même dans Terminal:

cron env de l'user:

 PATH=/usr/bin:/bin:/usr/sbin:/sbin ... SHELL=/bin/bash HOME=/Users/user USER=user PWD=/ ... 

par rapport à l'env de l'user:

 PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin ... SHELL=/bin/bash HOME=/Users/user USER=user PWD=/Users/user ... 

Vous pouvez également append le PATH au crontab:

 sudo nano /var/cron/tabs/user 

Dans les systèmes plus récents (probablement ≥ 10,6):

 sudo nano /private/var/at/tabs/user 

Changement

 ... * * * * * some command 

à

 ... PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin * * * * * some command