2012-04-01 10 views
10

Acabo de empezar a aprender Python + Tornado para mis servidores web. Cada vez que modifico un código en mis scripts o plantillas de Python, tengo que detenerlo en mi terminal (CTRL + C) y reiniciarlo (python server.py) y quiero una forma más efectiva de hacerlo, luego de modificar el código en algunos archivos el servidor se reinicia automáticamente.Python + Tornado Reiniciar después de editar archivos

Anteriormente estaba trabajando con NodeJS y usando el supervisor para hacer esto.

También hay una manera para recargar mi pestaña en Google Chrome para que pueda ver los cambios sin volver a cargar (F5)

Actualmente estoy usando Ubuntu 11.10 y Sublime Text 2 y usando CTRL + B en el texto sublime , pero si el servidor ya se está ejecutando genera un error porque la dirección y el puerto están en uso. Hay una solución para eso sin cambiar el puerto.

Gracias.

Respuesta

10

Si está buscando la recarga automática de archivos .py durante el desarrollo. En su tornado.web.Application() ponga debug=True después de sus manipuladores.

No creo que deba hacer esto en el entorno de producción, porque dicha implementación suele utilizar un hilo de fondo para analizar activamente los archivos en busca de cambios, lo que puede ralentizar su aplicación.

+0

Funciona muy bien, gracias! – danielfrg

+1

En realidad, creo que tornado no usa un hilo separado para esto, sino que registra controladores en su IOLoop. Sin embargo, incurre en gastos generales. Además, los mensajes de depuración no se deben usar en producción de todos modos. –

+0

Es posible simplemente pasar "autoreload = True" ahora. Y hay una página de documentación aquí: http://www.tornadoweb.org/en/stable/autoreload.html – Ross

Cuestiones relacionadas