rechargement à chaud / échange avec Python [double]
Question
Cette question a déjà une réponse ici:
Je veux des changements de code à prendre effet immédiatement au cours du développement. Comment puis-je détecter les fichiers modifiés et les recharger dans l'application Python (2.7) en cours d'exécution?
Edit:
Après avoir lu les pages liées par Ivo van der Wijk », je pense qu'il serait préférable de redémarrer l'application Web lorsque le code change - comme le fait Django. La question actuelle est: Comment suivre les modifications de fichiers
Autres conseils
Cela n'a pas de sens pour la plupart des applications, car vous obtiendrez des effets secondaires à l'aide reload
. De plus le temps que vous passez sur le code qui détecte les changements et rechargements tous les modules ont pu être consacrés à juste redémarrer l'application. Il est très compliqué si vous importez beaucoup de modules ou un projet qui contient plusieurs sous-modules.
Dans certains cas, il est une bonne idée cependant. Le framework web Django fournit un serveur de développement (manage.py runserver
) qui recharge automatiquement les modules modifiés. Jetez un oeil à la django.utils.autoreload
- il teste tous les fichiers Python pour des modifications en utilisant le temps de modification des fichiers. Comme dit précédemment, ce n'est une bonne idée pour certaines applications. Les applications Web sont un peu sans état et peuvent donc être rechargées avec peu ou pas d'effets secondaires.