Créer un executable avec un JSON modifiable
Bonjour,
J'ai développé un petit programme qui permet de modifier des seuils définis dans un fichier JSON.
Le problème étant qu'en créant un executable de ce programme, il ne prend pas en compte les changements dans le fichier JSON.
Je ne sais pas vraiment comment faire et n'ai pas trouvé de problème similaire sur internet.
Sauriez vous comment faire l'executable d'un programme python dans lequel on utilise un JSON qui est modifié ?
Merci pour vos réponses, si vous vaez besoins d'autres informations n'hesiter pas !
- Json to exe
- Bat to exe converter - Télécharger - Édition & Programmation
- .Exe - Télécharger - Divers Utilitaires
- Qwerty to azerty - Guide
- Winrar exe - Télécharger - Compression & Décompression
- Whatsapp .exe - Télécharger - Messagerie
2 réponses
Bonjour,
Si le fichier json embarqué ne peut être modifié, il faut peut être si les valeurs originales sont modifiées, les enregistrer dans un fichier local, qui au lancement du programme sera préalablement recherché avant le fichier embarqué.
Bonjour,
Une fois chargé en mémoire, le fichier JSON n'est plus consulté par le programme. Il faut donc qu'en cas de changement de ce fichier, ton programme le recharge explicitement.
La stratégie la plus naïve consiste à recharger (à chaque fois qu'une fonction en dépend) le fichier JSON. C'est un peu overkill surtout si les paramètres qu'il contient sont fréquemment utilisés.
L'idéal serait donc ne recharger le fichier JSON que quand celui-ci est modifié. Sous Linux, on utiliserait par exemple inotify pour que le programme soit averti en cas de changement du fichier (ce qui lui permettrait de ne le recharger qu'en cas de besoin). Il existe un paquet python inotify qui émule cette fonctionnalité (et donc visiblement, qui peut marcher pour d'autres systèmes, comme Windows).
Bonne chance
Je pense que si car si on regarde le code source on ne voit pas d'appel explicite à la commande inotify et on voit également dans ce fichier des instructions qui laissent penser que le paquet est susceptible de marcher sous windows (il n'y a pas de dll sous linux). Mais tu as peut-être raison...
Quoi qu'il en soit, tu as raison, watchdog est un choix plus sûr, car il est explicitement annoncé comme multi-plateforme.