Domanda

    

Questa domanda ha già una risposta qui:

         

Voglio modifiche al codice abbia effetto immediato durante lo sviluppo. Come posso rilevare cambiato i file e ricaricare loro nella (2.7) applicazione Python in esecuzione?

Modifica:

Dopo aver letto le pagine collegate da 'Ivo van der Wijk', penso che sarebbe meglio per riavviare l'applicazione web quando cambia il codice - come Django fa. Quindi la domanda reale è:? Come monitorare le modifiche dei file

È stato utile?

Soluzione

Questa domanda è stato chiesto un numero di volte

È possibile utilizzare reload (modulo) per questo, ma attenzione di effetti collaterali brutto. Ad esempio, il codice esistente sarà basato sul codice originale, non sarà magicamente ottenere nuovi attributi o baseclasses aggiunto.

Altri suggerimenti

ho voluto lo stesso effetto per alcuni dei miei script Python, così sono andato avanti e ha fatto lo script SourceChangeMonitor.py. Lo si può trovare con le istruzioni qui . Se si desidera solo lo script, qui è una diretta Link

Questo non ha senso per la maggior parte delle applicazioni, perché otterrete effetti collaterali utilizzando reload. Più il tempo impiegato per il codice che rileva le modifiche e ricarica tutti i moduli avrebbero potuto essere spesi solo riavviare l'applicazione. E 'molto complicato se importare un sacco di moduli o di avere un progetto che contiene molti sotto-moduli.

In alcuni casi, è una buona idea, però. Il framework web Django fornisce un server di sviluppo (manage.py runserver) che ricarica automaticamente i moduli cambiati. Date un'occhiata al django.utils.autoreload - mette alla prova tutti i file Python per le modifiche utilizzando la data di modifica dei file. Come detto prima, questa è solo una buona idea per alcune applicazioni. Le applicazioni Web sono un po 'apolidi e, quindi, possono essere ricaricati con pochi o nessun effetto collaterale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top