Script di Utility: Trova Libreria BLAS di NumPy (util_find_numpy_blas.py)
1. Scopo
Questo script è uno strumento di diagnostica per il processo di build con PyInstaller. Il suo unico scopo è trovare il percorso esatto della libreria matematica BLAS (solitamente OpenBLAS) che la versione installata di NumPy sta utilizzando.
2. Quando si Deve Usare Questo Script?
Devi usare questo script SOLO se si verifica una delle seguenti situazioni durante la creazione di un eseguibile con PyInstaller:
- L’eseguibile (
.exe) crasha all’avvio con errori relativi aNumPyo a librerie matematiche mancanti. PyInstallermostra avvisi durante il processo di build riguardo a librerie.dll(su Windows) o.so(su Linux) non trovate.
Questo script aiuta a risolvere il problema indicando a PyInstaller dove trovare manualmente le dipendenze necessarie.
3. Come si Lancia lo Script?
Prerequisiti:
- Ambiente virtuale del progetto attivo.
Comando: Assicurati di essere nella directory principale del progetto ed esegui:
python scripts/utils/util_find_numpy_blas.py4. Come Usare l’Output?
Lo script stamperà nel terminale un output simile a questo:
codeCode
!!! TROVATA LIBRERIA BLAS !!!
PERCORSO COMPLETO: C:\path\to\project\.venv\Lib\site-packages\numpy\.libs\libopenblas.XWYz....dll
INSERISCI QUESTA DIRECTORY NEL .SPEC: C:\path\to\project\.venv\Lib\site-packages\numpy\.libs
La riga importante è INSERISCI QUESTA DIRECTORY NEL .SPEC.
Dovrai:
-
Aprire il tuo file di configurazione PyInstaller (es. fire.spec).
-
Trovare la sezione binaries all’interno di Analysis.
-
Aggiungere una tupla con il percorso della libreria e una destinazione, come mostrato nell’output.
Esempio (dentro il file .spec):
codePython
a = Analysis(
...
binaries=[('C:\\path\\to\\project\\.venv\\Lib\\site-packages\\numpy\\.libs\\*', 'numpy\\.libs\\')],
...
)
Questo assicurerà che PyInstaller includa correttamente le librerie matematiche nell’eseguibile finale, risolvendo i crash all’avvio.