¿Cómo usar macports Python en un trabajo cron?

Instalé Python 2.7 a través de puertos mac y ahora quiero que se use en un trabajo cron. Desafortunadamente, cada vez que se involucra el trabajo cron, el Python estándar de mi máquina (un iBook G4 que usa Tiger) que es 2.3 está involucrado, lo que hace que mi trabajo falle.

Mi RUTA es (del setcomando)

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

PAG

¿Cómo puedo invocar mi trabajo cron con mi PATHen lugar del defectuoso?

Simplemente inicie la tarea de python con la ruta completa a python en el trabajo cron, es decir, /opt/local/bin/python. A menos que tenga dependencias complejas, esto no debería requerir cambios de ruta.

Respuestas (1)

El resultado de la variable PATH es bastante diferente en el mundo cron . Invoque el script con la ruta completa al binario de python (por ejemplo, /opt/local/bin/python2.7) y debería estar bien.

Esto se puede examinar ejecutando envcomo cronjob y comparándolo con el resultado de ejecutar envcomo usted mismo en la Terminal:

entorno cron del usuario:

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

en comparación con el env del usuario:

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
...

Alternativamente, puede agregar la RUTA al crontab:

sudo nano /var/cron/tabs/user

En sistemas más nuevos (probablemente ≥10.6):

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

Cambiar

...

*       *       *       *       *       some command

a

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

*       *       *       *       *       some command
Por supuesto, puede cambiar el valor de PATH en su crontab.
Acabo de configurar la máquina WAYBAC en 10.4, encontrará crontabs en /etc/crontab.
@fd0 Gracias por esto. Mi mezcla heterogénea de VM solo incluye 10.6 y más reciente...
Me equivoqué, /etc/crontabes el "sistema" crontab. Los crontabs de usuario se encuentran en /var/cron/tabs10.4. Fuente: opensource.apple.com/source/cron/cron-12.2/cron/pathnames.h