Partage
  • Partager sur Facebook
  • Partager sur Twitter

Reloading module et ses dépendances

    20 mai 2015 à 22:38:31

    Salut à tous,

    Je tente de créer un espèce de menu principal en python qui me permet d'exécuter des jeux (écris également en python/pygame) localisé dans un dossier bien spécifique.

    Mon problème n'est pas dans le chargement du jeu et de ses dépendances (import d'autres fichier tels que des classes ou autres) mais bien au reloading de ces fichiers.

    Un exemple :

    1) L'utilisateur décide de sélectionner le jeu A qui contient un fichier "fonction.py" avec 2 fonctions.
    2) L'utilisateur décide ensuite de quitter le jeu A pour jouer au jeu B qui contient également un autre fichier "fonction.py" mais qui lui a 3 fonctions ! 
    3) Le programme plante car il essaye d'utiliser une fonction qui n'existe pas pour lui car il considère déjà avoir importé le fichier "fonction.py"..

    Un bout de code ...

    # On ajoute au path du programme les fichiers nécessaire au lancement du jeu
    Os.chdir(folder_to_launch)
    sys.path.append(folder_to_launch)
    
    # On initialise pygame et on importe le fichier principal (main.py) et on utilise la méthode principale pour lancer le jeu
    import main
    reload(main) # On réactualise l'import du fichier main
    pygame.init()
    m = main.Master()
    
    # Une fois le jeu quitté ...
    pygame.quit()

    De ce que je pense comprendre, c'est un problème au niveau de reload qui fait très bien son boulot. Il rafraîchit bien le contenu de "main" mais pas de ses dépendances.

    Quelqu'un aurait une petite idée de comment pourrais-je résoudre cette énigme !? En sachant que le programme doit être modulable, c'est-à-dire que n'importe qui puisse nommer ses fichiers comme il le souhaite.

    Merci d'avance ! ;)

    -
    Edité par romalops 20 mai 2015 à 22:42:46

    • Partager sur Facebook
    • Partager sur Twitter

    Reloading module et ses dépendances

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown