2011-09-12 22 views
10

TL; DR Ho bisogno di un modulo che aggiorni automaticamente il mio script in background, in silenzio.aggiorna automaticamente lo script python

Ho uno script Python che distribuisco agli utenti. Lo aggiorno frequentemente, quindi chiedo loro di aggiornarlo (tramite PIP). Ovviamente, questa non è una priorità elevata per gli utenti, che vogliono semplicemente utilizzare l'app, non pensare di aggiornarla.

Mi piacerebbe che aggiorni automaticamente la mia app, come fa Google Chrome, silenziosamente, in background, automaticamente. C'è una biblioteca che mi permette di farlo già? In caso contrario, c'è un modo semplice per usare il modulo PIP/distribuire per farlo?

+0

fyi - pip si installa nelle directory di sistema utilizzando sudo/admin privs, quindi gli utenti potrebbero non disporre dei privilegi per aggiornare – jterrace

+0

Può essere utilizzato per l'installazione nell'home directory dell'utente (ad esempio, sotto il mio ~/.myCLIapp /)? nel peggiore dei casi, potrei sicuramente installare un virtualenv? –

risposta

1

Il modo più semplice per eseguire questa operazione è configurare un servizio Web che lo script esegua quando viene eseguito. Il servizio Web può restituire un numero di versione, che lo script può verificare con il proprio numero di versione. Se il numero di versione è più alto, può aggiornarsi e rieseguire.

+2

Certo, ho pensato a questo e ho costruito un mezzo prototipo. Ma le cose si complicano un po '- cosa succede se diventa più di una sceneggiatura, cosa succede se ha delle dipendenze, ecc. Ecco perché penso che probabilmente dovrebbe usare PIP. –

+0

Ho usato questa tecnica con successo in passato per script semplici, Wilduck. Paul ha ragione che ha problemi con le dipendenze. – syrion

1

Ho sperimentato con BitRock per un'applicazione open-source che sto sviluppando. Forniscono programmi di installazione multipiattaforma per un'applicazione con aggiornamenti automatici. La licenza è gratuita se la tua applicazione è open-source, ma i prodotti commerciali richiedono l'acquisto di una licenza. Potrebbe essere eccessivo se la tua applicazione è piccola, ma ho pensato di dargli comunque una sola opzione.

1

Se l'installazione di pip funziona già per te, perché non puoi semplicemente eseguire os.system("pip install -U myscript") all'avvio di script? Questo è piuttosto sporco, ma lo è anche per i non sviluppatori.

Problemi correlati