È facile creare codice altamente integrato in python, quindi la necessità di chiudere e riavviare un'applicazione quando il suo codice viene modificato è comprensibile.Come scrivere codice Python che può essere auto-aggiornato senza bisogno di uscire dall'applicazione?
Tuttavia, sicuramente devono esistere alcune strategie e modelli per essere in grado di isolare parti del codice in modo che possa essere aggiornato al volo senza la necessità di uscire e riavviare.
Per le applicazioni su cui sto lavorando molte funzioni saranno attività in background indipendenti a cui l'applicazione principale parlerà, presenteranno informazioni sullo stato e istruiranno anche a eseguire attività in base allo stato corrente. In molti modi queste attività in background possono essere viste come programmi indipendenti, solo che condividono parte della base di codice con l'applicazione principale e altri strumenti, attività, ecc.
Anche se probabilmente è difficile rendere l'intera sessione live aggiornabile, sono sicuro che ci devono essere dei modi in cui è possibile distribuire gli aggiornamenti e fare in modo che il codice in esecuzione si noti e si aggiorni secondo necessità.
Dal momento che sono anche appassionato di sfruttare il multithreading e asyncio (in Python 3.5), oltre ad esplorare rendere le cose senza stato, sembra logicamente possibile fare alcune cose interessanti qui che almeno permette di evitare alcuni forzato riavvio forzato durante il lancio di un nuovo codice.
Sarei molto grato per suggerimenti e indicazioni su come farlo funzionare.
Potreste essere interessati a [questa domanda] (https://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module) – CoryKramer
Grazie @CoryKramer, che è esattamente il tipo di informazioni che sto cercando. Brillante, questo potrebbe essere più facile da fare di quanto immaginassi inizialmente :) – tsvenson
Credo che sia la fiaschetta che il tornado abbiano caratteristiche come questa, quindi potresti dare un'occhiata anche al loro codice. – dano