2012-04-01 10 views
10

Ho appena iniziato ad imparare Python + Tornado per i miei server web. Ogni volta che modifico un codice sui miei script o modelli Python devo fermare il terminale (CTRL + C) e riavviarlo (python server.py) e voglio un modo più efficace per farlo, dopo aver modificato il codice in alcuni file il server si riavvia automaticamente.Python + Tornado Riavvia dopo aver modificato i file

Precedentemente lavoro con NodeJS e uso supervisore per fare ciò.

Inoltre v'è un modo per ricaricare la mia scheda in Google Chrome in modo da poter vedere i cambiamenti senza ricaricare (F5)

Attualmente sto usando Ubuntu 11.10 e Sublime Text 2 e utilizzando CTRL + B sul testo sublime , ma se il server è già in esecuzione genera un errore perché l'indirizzo e la porta sono in uso. C'è una soluzione per questo senza cambiare la porta.

Grazie.

risposta

10

Se si sta cercando il ricaricamento automatico dei file .py durante lo sviluppo. Nel tuo tornado.web.Application() inserisci debug=True dopo i gestori.

Non penso che dovresti farlo nell'ambiente di produzione, perché in genere tale implementazione utilizza un thread in background per analizzare attivamente i file per le modifiche, che potrebbero rallentare l'applicazione.

+0

funziona bene, grazie! – danielfrg

+1

In realtà credo che il tornado non usi un thread separato per questo, ma registri invece i gestori sul suo IOLoop. Tuttavia, incorre in un sovraccarico. Inoltre, i messaggi di debug non dovrebbero essere comunque utilizzati in produzione. –

+0

È possibile passare "autoreload = true" adesso. E c'è una pagina di documentazione qui: http://www.tornadoweb.org/en/stable/autoreload.html – Ross