recarga caliente / intercambio con Python [duplicado]
Pregunta
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo se descarga (recarga) un módulo de Python? 18 respuestas
Quiero cambios en el código surtan efecto inmediato durante el desarrollo. ¿Cómo puedo detectar archivos cambiado y volver a cargarlos en el (2,7) aplicación Python corriendo?
Editar:
Después de leer las páginas enlazadas por 'Ivo van der Wijk', creo que sería mejor para reiniciar la aplicación web cuando el código cambia - como Django hace. Así que la pregunta real es: Cómo supervisar las modificaciones del archivo
Otros consejos
Esto no tiene sentido para la mayoría de las aplicaciones porque obtendrá efectos secundarios mediante el uso de reload
. Además, el tiempo que pasa en el código que detecta los cambios y vuelve a cargar todos los módulos se podrían haber gastado en solo reiniciar la aplicación. Es muy complicado si importar una gran cantidad de módulos o tener un proyecto que contiene muchos sub-módulos.
En algunos casos, es una buena idea sin embargo. La web framework Django proporciona un servidor de desarrollo (manage.py runserver
) que vuelve a cargar automáticamente los módulos modificados. Echar un vistazo a la django.utils.autoreload
- pone a prueba todos los archivos de Python para las modificaciones utilizando el tiempo de modificación de los archivos. Como se dijo antes, esto es sólo una idea buena para algunas aplicaciones. Las aplicaciones web son algo sin estado y por lo tanto pueden ser recargadas con pocos o ningún efecto secundario.