2012-03-02 2 views
13

Il requisito è quello di fare un'applicazione portatile, ciò significa che nessun programma di installazione. Ho guardato py2exe e ho paura di dover eseguire l'installazione se voglio eseguirlo sotto Windows.Come posso creare un'applicazione desktop portatile per python?

Quindi la mia domanda è: posso creare un'applicazione desktop python portatile senza alcuna installazione (tutte le dipendenze e le librerie sono imballate), il trascinamento da USB/CD lo eseguirà?

(Questo è fondamentale perché è un mal di testa per gli utenti di installare libreria C++ Run Time ...)

Grazie.

+0

dite che è un mal di testa per gli utenti di installare la libreria di runtime C++ ... perché non includerlo nel programma di installazione del tuo programma? Ho impacchettato il software Python con py2exe usando Inno Setup per l'installazione. Ho appena fatto in modo che il programma di installazione esegua il runtime di Visual C++ ridistribuibile con i flag '/ qb' in modo che l'utente non debba fare nulla. –

+0

@ Series8217 Grazie. Penso di poterlo fare, ma il punto principale è senza installatore; se può essere portatile, bello! – CppLearner

risposta

9

È possibile utilizzare questo metodo con py2exe: http://www.py2exe.org/index.cgi/SingleFileExecutable

In sostanza, si utilizza NSIS per confezionare tutti i file e le cartelle necessari in un unico eseguibile. Quando lo esegui, i file richiesti vengono espansi in una directory temporanea, viene eseguito l'eseguibile e quando si chiude, i file temporanei vengono eliminati automaticamente.

C'è anche un esempio che viene fornito con py2exe che utilizza Inno Setup invece di NSIS per ottenere lo stesso risultato. È installato su site-packages\py2exe\samples\extending.

+0

Grazie. L'ho letto, correggi se ho torto: quindi dopo aver compilato l'installer, posso copiare l'intera cartella su un altro computer. Esegui l'eseguibile, genererà file appropriati come le DLL in una cartella tmp, che saranno eliminati una volta che l'utente chiude l'app. La mia applicazione richiede persistenza perché abbiamo un database XML, quindi non vogliamo distruggere i record. Come faccio a sapere cosa sono creati nel tmp? Grazie. – CppLearner

+0

@CppLearner corretto. Dopo aver compilato il "programma di installazione", l'unico file eseguibile che è necessario passare all'altro computer è "l'installazione". Quando si esegue che eseguibile, si scompatta il suo contenuto (l'exe dell'applicazione e file DLL necessari, ecc), esegue l'applicazione, e quando l'applicazione esce cancella la cartella Temp. È possibile controllare il comportamento modificando lo script NSIS di esempio. –

+1

@CppLearner Se si desidera che i dati persistenti, memorizzano dove la sua supposta andare ... forse '% HOMEPATH% \ AppData \ MyXMLDB' o qualcosa di simile. Quindi l'applicazione può sempre trovarlo, indipendentemente da dove lo si esegue. –

3

È possibile anche sborsare Portable Python e modificare per includere l'applicazione e le librerie si ha bisogno. Si va da qualsiasi percorso di unità/rete senza installazione e si può scegliere vuoi 2.xx o nucleo basato su Python 3.xx