python-codicefiscale
python-codicefiscale copied to clipboard
Allow access to data files when running in a frozen environment (eg. executable).
Discussed in https://github.com/fabiocaccamo/python-codicefiscale/discussions/151
Originally posted by goldelay January 30, 2024 Ciao Fabio, per poter accedere alle informazioni data/municipalities.json etc... su una build eseguibile effettuata con pyinstaller ho dovuto modificare il codice di data.py applicando questa fix:
from __future__ import annotations
from datetime import datetime
from typing import Any
import fsutil
import sys, os
def get_temp_dir():
if getattr(sys, 'frozen', False):
# Se l'applicazione è un eseguibile standalone
return os.path.dirname(sys.executable)
else:
# Se l'applicazione è eseguita come script Python
return os.path.dirname(os.path.abspath(__file__))
def get_data(filename: str) -> Any:
return fsutil.read_file_json(fsutil.join_path(get_temp_dir(), f"data/{filename}"))
#return fsutil.read_file_json(fsutil.join_path(__file__, f"data/{filename}"))
la function get_temp_dir() serve ovviamente a dirottare le chiamate per caricare i file dalla cartella del componente di python alla root dell'esegiubile nel momento in cui è un eseguibile.
In questo modo copiando la cartella .\data*.json contenuta dentro al tuo componente dentro la root dell'applicazione EXE permette di funzionare riuscendo così ad elaborare i dati per generare e verificare il codice fiscale al di fuori quindi del contesto python/componente.
Spero di esser stato d'aiuto
Saluti Umberto Neri
Upvote & Fund
- We're using Polar.sh so you can upvote and help fund this issue.
- We receive the funding once the issue is completed & confirmed by you.
- Thank you in advance for helping prioritize & fund our backlog.