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).