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