Créer un executable avec un JSON modifiable

Fermé
OH - 12 avril 2023 à 12:05
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 - 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 !

A voir également:

2 réponses

jee pee Messages postés 39655 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 27 avril 2024 9 238
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é.


0
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
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

0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
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 :

https://pythonhosted.org/watchdog/

1
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749 > [Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024
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.

0