Pergunta

Esta pergunta já tem uma resposta aqui:

Eu quero que as alterações de código entrem em vigor imediatamente durante o desenvolvimento. Como posso detectar arquivos alterados e recarregá -los no aplicativo Python em execução (2.7)?

Editar:

Depois de ler as páginas vinculadas por 'Ivo van der Wijk', acho que seria melhor reiniciar o aplicativo da web quando o código mudar - como o Django faz. Portanto, a questão real é: Como monitorar modificações de arquivos?

Foi útil?

Solução

Esta pergunta foi feita uma número do vezes

Você pode usar o Reload (módulo) para isso, mas cuidado com os efeitos colaterais desagradáveis. Por exemplo, o código existente será baseado no código original, ele não receberá magicamente novos atributos ou empresas de base adicionadas.

Outras dicas

Eu queria o mesmo efeito para alguns dos meus scripts Python, então continuei e fiz o script sourceChanGonitor.py. Você pode encontrar com instruções aqui. Se você só quer o script, aqui é um link direto

Isso não faz sentido para a maioria dos aplicativos, porque você obterá efeitos colaterais usando reload. Além disso, o tempo gasto no código que detecta alterações e recarrega todos os módulos poderiam ter sido gastos apenas reiniciando o aplicativo. É muito complicado se você importar muitos módulos ou ter um projeto que contém muitos sub-módulos.

Em alguns casos, é uma boa ideia. A estrutura da web do Django fornece um servidor de desenvolvimento (manage.py runserver) que recarregam automaticamente os módulos alterados. Dê uma olhada no django.utils.autoreload - Ele testa todos os arquivos Python quanto a modificações usando o tempo de modificação dos arquivos. Como dito antes, essa é apenas uma boa idéia para algumas aplicações. Os aplicativos da Web são um pouco apátridas e, portanto, podem ser recarregados com poucos ou nenhum efeito colateral.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top