Creare file eseguibili da script Python con py2exe

Introduzione

L’esecuzione di script Python richiede molti prerequisiti come avere installato Python, avere una pletora di moduli installati, usare la riga di comando, ecc. durante l’esecuzione di un file .exe è molto semplice.

Se si desidera creare una semplice applicazione e distribuirla a molti utenti, scriverla come un breve script Python non è difficile, ma presuppone che gli utenti sappiano come eseguire lo script e che Python sia già installato sulla propria macchina.

Esempi come questo mostrano che esiste un motivo valido per convertire .py programmi in programmi equivalenti .exe su Windows. .exe sta per “File eseguibile”, che è anche noto come binario.

Il modo più popolare per raggiungere questo obiettivo è utilizzando il modulo py2exe. In questo articolo, esamineremo rapidamente le basi di py2exe e risolveremo alcuni problemi comuni. Per seguire, non è necessaria alcuna conoscenza avanzata di Python, tuttavia dovrai usare Windows.

Convertire un codice di linguaggio interpretato in un file eseguibile è una pratica comunemente chiamata congelamento.

Installazione di py2exe

Per utilizzare il modulo py2exe, sarà necessario installarlo. Facciamolo con pip:

$ pip install py2exe

Conversione di script Python in .exe

Per prima cosa, scriviamo un programma che stamperà del testo sulla console:

import mathprint("Hannibal ante Portas")print(factorial(4))

Eseguiamo i seguenti comandi nella riga di comando di Windows per creare una directory (exampDir), spostare il codice che abbiamo già scritto in detta directory e, infine, eseguirlo:

$ mkdir exampDir$ move example.py exampDir$ cd exampDir$ py example.py

Questo dovrebbe produrre:

Hannibal ante Portas24

Prova sempre gli script prima di trasformarli in eseguibili per assicurarti che se c’è un errore, non sia causato dal codice sorgente.

Configurazione e configurazione

Crea un altro file chiamato setup.py nella stessa cartella. Qui manterremo i dettagli di configurazione su come vogliamo compilare il nostro programma. Ci metteremo solo un paio di righe di codice per ora:

from distutils.core import setup # Need this to handle modulesimport py2exe import math # We have to import all modules used in our programsetup(console=) # Calls setup function to indicate that we're dealing with a single console application

Se avessimo a che fare con un’app con un’interfaccia utente grafica, sostituiremmo console con windows in questo modo:

setup(windows=)

Ora apri il prompt dei comandi come amministratore e vai alla directory che abbiamo appena menzionato ed esegui il file setup.py :

$ cd exampDir$ python setup.py py2exerunning py2exe*** searching for required modules ****** parsing results ***...

dist folder

Se tutto è fatto correttamente, questo dovrebbe produrre una sottodirectory chiamata dist. Al suo interno, ci saranno alcuni file diversi a seconda del programma, e uno di questi dovrebbe essere example.exe. Per eseguirlo dalla console esegui:

$ example

E sarete accolti dalla nostra citazione latina, seguita dal valore di 4!:

Hannibal ante Portas24

Oppure, puoi fare doppio clic su di esso e verrà eseguito nella console.

Se desideri raggruppare tutti i file, aggiungi bundle_files e compressed e imposta zipfile su Nessuno in questo modo:

from distutils.core import setupimport py2exesetup( options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, console = , zipfile = None,)

E ri-eseguire i comandi per generare il .exe.

Ora, gli utenti finali possono eseguire gli script senza alcuna conoscenza o prerequisiti installati sui loro computer locali.

Risoluzione dei problemi

Gli errori durante la conversione di file .py in file .exe sono comuni, quindi elencheremo alcuni bug e soluzioni comuni.

Come risolvere DLL-s mancanti dopo aver usato py2exe

Un problema comune con py2exe manca .dll -s.

DLL sta per “dynamic-link library”, e non sono lì solo per fare bug, promessa. Le DLL contengono codice, dati e risorse di cui il nostro programma potrebbe aver bisogno durante l’esecuzione.

Dopo aver eseguito .exe , se si ottiene un errore di sistema che dice qualcosa come:

The program can't start because something.dll is missing from your computer. Try reinstalling the program to fix this problem. 

O la riga di comando dice:

ImportError: (DLL load failed: The specified module could not be found.)

La soluzione è trovare il .dll mancante e passarlo nella cartella dist. Ci sono due modi per farlo.

  1. Cerca nel tuo computer il file e poi copialo. Questo funzionerà la maggior parte del tempo.
  2. Trova il .dll mancante online e scaricalo. Cercate di non scaricarlo da qualche sito web ombreggiato.

Come generare eseguibili a 32/64 bit usando py2exe?

Per creare un eseguibile a 64 bit, installa Python a 64 bit sul tuo dispositivo. Lo stesso vale per la versione a 32 bit.

Come usare py2exe su Linux o Mac

py2exe non supporta su Linux o Mac, in quanto ha lo scopo di creare .file exe che è un formato unico per Windows. È possibile scaricare una macchina virtuale Windows su Mac e Linux, utilizzare Wine o utilizzare uno strumento diverso come Pyinstaller su Linux, o py2app su Mac.

Conclusione

Per rendere i progetti Python più facili da eseguire su dispositivi Windows, è necessario generare un file eseguibile. Possiamo usare molti strumenti diversi, come Pyinstaller, auto-py-to-exe, cx_Freeze e py2exe.

I file binari possono utilizzare DLL-s, quindi assicurati di includerli con il tuo progetto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

More: