mio pitone è costruito come tale che alcune funzionalità è disponibile come plugin. L'architettura del plugin al momento è molto semplice: ho una cartella/pacchetto di plugin che contiene alcuni moduli python. I caricare il plugin pertinente nel modo seguente:caricamento dinamico di plugin pitone non compilati in py2exe codice compilazione
plugin_name = blablabla
try:
module = __import__(plugin_name, fromlist='do_something')
except ImportError:
#some error handling ...
e quindi eseguire:
try:
loans = module.do_something(id_t, pin_t)
except xxx:
# error handling
ho compilare l'applicazione a un Windows binario utilizzando py2exe. Funziona bene, tranne per il fatto che tutti i plugin sono (e devono essere) inclusi nel file binario. Questo non è molto pratico, dal momento che per ogni nuovo plugin, devo ricompilare e rilasciare una nuova versione della mia applicazione. Sarebbe meglio se un nuovo plug-in (cioè il file python) potesse essere copiato in qualche cartella di plug-in dell'applicazione e che il codice Python nel codice del file fosse interpretato al volo dalla mia applicazione.
Qual è l'approccio migliore per farlo?
(ho però di leggere ogni riga del file plugin selezionato, e l'applicazione di un exec
statement ad essa. Ma ci potrebbero essere modi migliori ...)
Grazie per la risposta. Ma questo non richiederebbe a qualcuno di avere python installato sul suo computer? (la soluzione che ho proposto, richiederebbe che, ora che ci penso) – Rabarberski
Hai ragione, dovrebbe essere la stessa installazione python sia per l'applicazione che per i plugin esterni. Sono d'accordo, questo è abbastanza fastidioso. –