[Python-es] Funcionan los scripts de Python con Tareas Programadas de Windows ?

Ismael Jimenez ijimenezgarzon en gmail.com
Vie Feb 5 15:30:50 CET 2010


¿No es mas facil crear un servicio que cargue el script que necesitas?


El 5 de febrero de 2010 09:13, Olemis Lang (Simelix)
<olemis+py en gmail.com<olemis%2Bpy en gmail.com>
> escribió:

> 2010/2/4 Olemis Lang (Simelix) <olemis+py en gmail.com<olemis%2Bpy en gmail.com>
> >:
> > 2010/2/4 Dr. Bobus <drbobus en gulic.org>:
> >> El Thu, 4 Feb 2010 11:21:49 -0500
> >> "Olemis Lang (Simelix)" <olemis+py en gmail.com <olemis%2Bpy en gmail.com>>
> dijo:
> >>
> >>> Hola a todos !
> >>>
> >>> Esta vez estoy tratando de utilizar el Windows Task Scheduler (WTS)
> >>> para ejecutar un script de Python . El momento exacto depende, por
> >>> tanto, de todo el sin número de reglas y opciones y checkbox(es)
> >>> mágicos q hay por esa zona ;o). Ahora el problema es otro . Antes que
> >>> hay q decir q :
> >>>
> >>>   - El script funciona cuando lo ejecuto desde la línea de comandos
> >>>      con los parámetros adecuados
> >>>   - ... cuando digo «los parámetros adecuados» son los parámetros
> >>>      a utilizar para hacer lo q se pretende y, además, q la línea de
> >>>      comandos la copié desde el edit `` y la pegué para ejecutar
> >>>      (i.e. no puede haber diferencias ;o)
> >>>   - Durante su funcionamiento se utiliza `logging` para registrar
> eventos
> >>>      hacia la consola (stderr AFAICR) y hacia el Windows Event Log (q
> se
> >>>      pueden ver con el Viewer ;o)
> >>>   - La ejecución del script demora normalmente unos minutos
> >>>   - En especial hay un evento q registra el inicio y el final del
> servicio
> >>>   - Cuando se ejecuta desde la consola se ven todos los eventos
> >>>      (stderr + event viewer ;o) como debería ser.
> >>>
> >>> La cuestión es q cuando se activa la tarea y el WTS ejecuta el script
> >>> entonces se visualiza una ventana del `cmd` en modo de consola, en la
> >>> q se muestra un único mensaje q no tiene nada q ver con los emitidos
> >>> por `logging` (algo así como `[DEFAULT]` ) y no se registra nada en el
> >>> Event Viewer tampoco. Todo esto me hace pensar q, a pesar que el WTS
> >>> lo ejecuta, por alguna razón mata el proceso inmediatamente y me
> >>> enseña un cartelito para demostrarme q no sé programar en Python (q
> >>> manía ! ... :o)
> >>>
> >>> Por eso les pregunto
> >>>
> >>> Q:
> >>>   - Alguien sabe lo q pasa (o ha experimentado algo así antes)
> >>>      y cómo resolverlo ?
> >>>   - Será q el comando tiene q ser implementado como un
> >>>      servicio de Windows ?
> >>
> >> No se si es lo mismo, pero te cuento, yo ejecuto un montón de tareas
> programadas mediante "las tareas programadas de windows" (windows 2000) y me
> han pasado varias cosas. No soy administrador del sistema y la configuración
> de los permisos en mi red varía según las necesidades de la empresa...
> >> Mis principales problemas han venido siempre por ese lado, desde lo
> permisos para crear/modificar tareas programadas a los permisos de acceso,
> lectura y escritura en los distintos directorios que usen los script
> (incluyendo donde está el ejecutable de python). Fíjate también con que
> usuario está ejecutando tu script.
> >>
> >
>
> Bueno he realizado varios descubrimientos importantes recientemente.
> Primeramente ya detecté la causa del problema. El script debe
> ejecutarse con un parámetro que indica el camino a un fichero de
> configuración (q se guarda en la variable `src`). Es por esto que hago
> lo siguiente para probar ;o).
>
> {{{
> #!python
>
> from optparse import OptionParser
> import sys
>
> p = OptionParser()
> p.add_option("-i", "--input", dest="src",
>                  help="load config FILE", metavar="FILE")
> opts, args = p.parse_args()
>
> print sys.argv
> print opts.src
>
> raw_input("Accept ? (Y|y)")
> }}}
>
> Si ejecuto en la línea de comandos :
>
> {{{
> #!sh
>
> $ X:\path\to\file.py -i X:\path\to\cfg.ini
> }}}
>
> Entonces recibo la siguiente salida
>
> {{{
> ['X:\path\to\file.py', '-i', 'X:\path\to\cfg.ini']
> X:\path\to\cfg.ini
> }}}
>
> ... mientras que, al ejecutarlo a través del WTS, lo que recibo es
>
> {{{
> ['X:\path\to\file.py']
> None
> }}}
>
> No sé si esto sea debido a alguna deficiencia del intérprete o a otra
> travesura de MS Windows. ¿Qué creen Uds? Por lo menos a priori, no me
> parece que esté relacionado con algunas de las sugerencias anteriores.
>
> Cualquier nueva idea o comentario será bienvenida. Gracias !
>
> --
> Regards,
>
> Olemis.
>
> Blog ES: http://simelo-es.blogspot.com/
> Blog EN: http://simelo-en.blogspot.com/
>
> Featured article:
> Fixed a test error following a recent Trac 0.12dev workflow action
> change, added a placeholde...  -
> http://bitbucket.org/osimons/trac-rpc-mq/changeset/839be860b42c/
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
--------
Ismael Enrique Jimenez Garzon
Estudiante Ingenieria de Sistemas
Universidad Piloto de Colombia
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100205/2bfa20f6/attachment.html>


Más información sobre la lista de distribución Python-es