Si coloca la mayor parte del código en un módulo, puede hacer que el archivo principal (que es el que se ejecuta) verifique la ubicación de actualización y descargue automáticamente la versión más reciente e instálela antes de que el módulo importado.
De esta forma no tendría que reiniciar la aplicación para ejecutar la versión más reciente, simplemente vuelva a importar el módulo.
# Check version of module
import module
# Check update address
if update_version > module.version:
download(update_module)
import module
reload(module)
module.main()
Puede usar la función reload() para forzar a un módulo a volver a cargar sus datos. Tenga en cuenta que hay algunas advertencias sobre esto: los objetos creados usando clases en este módulo no se actualizarán mágicamente a la nueva versión, y "desde el módulo importar cosas" antes de la reimportación puede dar como resultado "cosas" que se refieren al objeto antiguo "module.stuff ".
[Claramente, no he leído el post anterior con suficiente claridad - que hace exactamente lo que sugieren]
genial ... pensé que no era por un error que estaba recibiendo, pero ahora veo que fue un error estúpido que estaba cometiendo. – carrier
Notablemente: si elimina el archivo .py, pero deja el archivo .pyc, ese archivo aún será potencialmente importado. Me muerde al menos una vez al mes. –