Je ne sais pas s’il y a vraiment une manière propre de le faire parce que ça me paraît être un cas d’usage assez sale, j’aurais tendance à faire en sorte de recharger les bons modules et laisser la boucle principale du programme tourner pour actualiser ce qui doit l’être.
Quoi qu’il en soit si je devais effectivement faire en sorte que le programme se relance de lui-même, je me tournerais plutôt vers le module subprocess pour instancier l’exécutable et j’utiliserais sys.executable / sys.argv pour ne pas avoir à entrer de chemin en dur ni dépendre du fichier courant :
Bonjour @entwanne,
je comprends que ma solution n’est pas top, mais je fais avec mes petits moyens techniques. Je vais étudier ta proposition et essayer de faire en sorte de ne pas avoir besoin de relancer le script, mais c’est plus compliqué pour moi à mettre en oeuvre.
et bonjour @mdk, je ne pensais pas que ma solution était la bonne mais je voulais avoir d’autres options pour essayer de les mettre en oeuvre. Je vais essayer de vous expliquer mes cas de figures pour être plus précis.
A bientôt si vous le voulez bien…
Mon premier script scrape des sites web pour récupérer la version de softs.
Parfois j’ai un problème d’accès malgré une temporisation, c’est pourquoi je relance le script.
Le code est le suivant:
Pour le second script je dois pouvoir éviter le bouton de relance…
En tout cas merci à @entwanne pour son code dont j’ai découvert le fonctionnement à travers la commande ``` subprocess.Popen([sys.executable, *sys.argv])
BJR. J’imagine que du coup a chaques fois tu décharge/recharge des trucs inutilement… Franchement une boucle et un boleen qui serait sur True si faut arrêter la boucle + les conditions pour qu’il soit sur True ou False serait mieux j’imagine… Après si ca devais se lancer tout le temps un scipt batch ou shell pourrait suffire mais serait pas top si le racourcis CTRL+C fait relancer le truc… Bon courage.