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