Forum >> Programmazione Python >> Scripting >> da python a file exe con .bat

Pagina: 1

Ciao a tutti, so che è un problema già affrontato e ho provato davvero vari metodi suggeriti (pyinstaller, cxfreeze ecc),ma lacosa non è statarisolta. Ho un progetto scritto in python composto da più di un file che vorrei trasformare in eseguibile in modo tale che non sia necessario installare python per poterlo eseguire.. per quanto riguarda pyinstaller ho cercato il comando che gli dica in quale path mettere l'eseguibile, ma senza successo. Cxfreeze sembrava funzionare, ma crea un file eseguibile che però non va, cioè non apre nè esegue nulla.. Qualche suggerimento? Si può fare con un file.bat?

--- Ultima modifica di Teresafro in data 2021-08-04 15:44:26 ---
Mah, sai... dire "non mi funzia" è un po' vago, capisci. Ho dedicato due capitoli del mio libro solo alla distribuzione dei progetti python, più che altro nella speranza di far capire che è un Problema Difficile. Il fatto è che Python non è stato pensato, fin dall'origine, per funzionare in questo modo (il doppio clic sull'exe). Il codice python tendenzialmente si distribuisce e si utilizza in un altro modo, ovvero avendo già l'interprete installato sulla macchina, e installando i pacchetti con Pip o altro gestore. Non è che non sia possibile pacchettizzare il codice come un eseguibile stand-alone, intendiamoci. Ma in generale non è una cosa che si fa in fretta e senza dolore.


Pyinstaller tende a funzionare per quanto ne so... nel senso che ha tutti i suoi problemi, ma riesce a fare il suo lavoro almeno nei casi più semplici, e quando il codice da pacchettizzare è organizzato come vuole lui. Ti consiglio di fare delle prove progressivamente più complicate con Pyinstaller. Prima prova a pacchettizzare un singolo script, e vedi che succede e come funziona. Poi prova con uno script che ne importa un altro, e poi via via con delle cose più difficili. Cerca di capire esattamente quello che fa, e perché lo fa.... probabilmente quando qualcosa va storto emetterà degli errori... analizzali...


Non è che "un file bat" sia di per sé un oggetto magico che risolve i problemi. E' solo un file che contiene una lista di comandi di cmd.exe... puoi usarlo per impostare una directory corrente, per invocare un interprete... ma alla fine, per pacchettizzare un progetto avrai pur sempre bisogno (detto così alla brutta) di infilare un interprete python funzionante, il tuo codice, tutte le dependency necessarie, tutte le eventuali risorse esterne, dentro il "sacco" di un eseguibile.


Ci sono vari modi per farlo... a mio giudizio Pyinstaller resta un buon prodotto, nella sua fascia. Dovessi scommettere due centesimi, probabilmente il tuo progetto fa qualcosa di "strano" o "sbagliato" che Pyinstaller non riesce a trattare bene. Import non-standard, risorse esterne localizzate male... va a sapere...






Pagina: 1



Esegui il login per scrivere una risposta.