Créer un executable avec un JSON modifiable
Fermémamiemando Messages postés 33606 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 26 mars 2025 - 17 avril 2023 à 14:46
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
- .Exe - Télécharger - Divers Utilitaires
- Bat to exe converter - Télécharger - Édition & Programmation
- Qwerty to azerty - Guide
- Winrar exe - Télécharger - Compression & Décompression
- Minecraft exe - Télécharger - Stratégie
2 réponses
Modifié le 12 avril 2023 à 12:36
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é.
14 avril 2023 à 14:36
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
Modifié le 14 avril 2023 à 23:18
Salut mamiemando,
Je ne pense pas que ce paquet Python fonctionne sous Windows. Il semble être un wrapper pour inotify, qui ne fonctionne que sous Linux -avec un noyau 2.6 au moins).
Celui-ci a l'air cross-platform, par contre :
17 avril 2023 à 14:46
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.