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

Était-ce utile?

La solution

Cette question a été posée nombre de fois

Vous pouvez utiliser reload (module) pour cela, mais méfiez-vous des effets secondaires désagréables. Par exemple, le code existant sera basé sur le code d'origine, il ne sera pas obtenir de nouveaux attributs ou baseclasses ajoutés par magie.

Autres conseils

Je voulais le même effet pour certains de mes scripts Python, donc je suis allé et fait le script SourceChangeMonitor.py. Vous pouvez trouver des instructions ici . Si vous voulez juste le script, ici est un lien direct lien

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top