Creare eseguibili Windows in Python con pyinstaller
PyInstaller
pyinstaller permette di creare degli eseguibili per windows con estensione .exe direttamente dai file .py
E’ sufficiente installarlo da console di windows (tasato destro su menù start-> Esegui -> cmd+Invio) con:
pip install pyinstaller
ed eseguire nella directory del nostro file .py:
pyinstaller --onefile nomedelloscript.py
Le librerie dipendenti più comuni (come tkinter per intenderci) sono generalmente incluse automaticamente, alcune esterne invece vanno specificate esplicitamente.
Ad esempio:
pyinstaller --onefile fe_import.py --hiddenimport xmltodict
Di default lo script crea due sottodirectory build e dist, contenenti l’exe e i file di informazione necessari alla compilazione.
Inoltre lo script apre una console/terminale windows al lancio del programma.
Nel caso volessimo evitarlo (ad esempio per applicazioni pensate per interfaccia esclusivamente grafica), possiamo usare l’opzione –noconsole:
pyinstaller --onefile fe_import.py --hiddenimport xmltodict --noconsole
Librerie aggiuntive
Nel mio caso ho installato una libreria esterna di Python che non veniva riconosciuta in alcun modo dal compliatore a causa di un problema di path di default di python.
Ho risolto disinstallando la libreria con pip uninstall nomelibreria, cambiando il path nelle variabili di sistema di windows e reinstallando la libreria.
Creare una procedura di installazione
Da mettere anche in conto il fatto che pyinstaller crea solo l’exe, quindi se è necessario includere le librerie di c++ per windows, bisogna fornirle separatamente od utilizzare un software di creazione installer come ad esempio questi (free/open source):
scusami nella tua descrizione dovresti cominciare dall’inizio ..mi spiego : dove e cosa aprire all’inizio dove eseguire il pip install…. in ambiente linux o windows
poi come far eseguire il file etcc…..
Ciao,
Ok, grazie per il consiglio:
Il tutto va fatto da una console di comando, quindi da windows 10 ad esempio:
1) Tasto destro su simbolo Start e poi clieccare su Esegui (se non compare o si utilizza un’altra versione di windows cercare su Google: aprire una console di comando da windows)
2) qui digitare CMD e premere Invio
Fondamentalmente, se è installato Python sul sistema, il comando PIP può essere lanciato direttamente da qualsiasi percorso se no bisogna andare nella directory degli script di python, es.: C:\Python37\scripts
Per Linux bisogna invece aprire un Terminal e fondamentalmente la procedura è identica.
Buongiorno, se provo a seguire la procedura mi da questo errore, qualcuno sa il perchè?
(v_env_uno) C:\Users\Riccardo\Desktop\Pithon\Progetti\Progetto_uno\v_env_uno\Scripts>pyinstaller –onefile Calcolatrice_python.py
Traceback (most recent call last):
File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\runpy.py”, line 193, in _run_module_as_main
“__main__”, mod_spec)
File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “C:\Users\Riccardo\Desktop\Pithon\Progetti\Progetto_uno\v_env_uno\Scripts\pyinstaller.exe\__main__.py”, line 4, in
File “c:\users\riccardo\desktop\pithon\progetti\progetto_uno\v_env_uno\lib\site-packages\PyInstaller\__init__.py”, line 17, in
from PyInstaller import compat
File “c:\users\riccardo\desktop\pithon\progetti\progetto_uno\v_env_uno\lib\site-packages\PyInstaller\compat.py”, line 184, in
is_ms_app_store = is_win and os.path.getsize(python_executable) == 0
File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\genericpath.py”, line 50, in getsize
return os.stat(filename).st_size
OSError: [WinError 1920] Impossibile accedere al file: ‘C:\\Users\\Riccardo\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\python.exe’
Non capisco esattamente però sembra un impostazione errata dell’ambiente virtuale.Proverei a partire da un’installazione pulita di Python senza virtual environment (quella classica in C:\python37 per intenderci).
Ciao, ho avuto anche io il tuo stesso problema in merito alle librerie aggiuntive non riconosciute dal compilatore.
Potresti approfondire su come hai fatto a risolverlo? In particolare mi riferisco a “cambiando il path nelle variabili di sistema di windows”. Come si fa a cambiare il path?
Grazie mille.
Antonio
Individua la cartella dove è installato Python e la cartella degli scripts (che contiene pip). Di solito, Python viene installato nei seguenti percorsi predefiniti:
Python stesso: C:\PythonXX (XX indica la versione, ad esempio Python 3.11 può essere in C:\Python311).
Librerie e script: C:\PythonXX\Scripts\.
Aggiungere Python al PATH:
Apri le Impostazioni di Sistema Avanzate:
Premi Win + R per aprire la finestra Esegui.
Digita sysdm.cpl e premi Invio.
Accedi alle variabili di ambiente:
Nella scheda Avanzate, clicca su Variabili d’ambiente.
Modifica la variabile Path:
Nella sezione Variabili di sistema (o Variabili utente), trova la variabile Path e selezionala.
Clicca su Modifica.
Aggiungi i percorsi Python:
Clicca su Nuovo e aggiungi i seguenti percorsi (uno alla volta):
Percorso principale di Python (ad esempio C:\PythonXX\).
Percorso degli script (ad esempio C:\PythonXX\Scripts\).
Salva le modifiche:
Clicca su OK per chiudere tutte le finestre.
Metodo tramite prompt dei comandi (facoltativo):
Puoi anche aggiungere Python al PATH tramite il prompt dei comandi con il seguente comando:
setx PATH “%PATH%;C:\PythonXX\;C:\PythonXX\Scripts\”
Sostituisci C:\PythonXX\ con il percorso corretto della tua installazione di Python.
Ciao Roberto, grazie al tuo aiuto ho risolto il problema.
Gentilissimo davvero.
Saluti
Antonio
Ottimo, felice di esser stato di aiuto! +1