Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec PySFML

repertoire d'execution

    12 août 2010 à 10:18:12

    Bonjour, je reviens avec mon problème j'ai réussi a voir d'ou cela venait

    Voilà j'ai remarqué avoir un petit problème qui m'empeche d'utilisé des chemins relatifs, je m'explique

    j'ai une installe de python 2.6

    pour ce programme ci :
    Code:

    #!/usr/bin/python2.6 
    import os 
    print os.getcwd()
    


    Il me retourne
    Code:
    /Users/vianney/Documents/Programmation/python/towerDefense
    



    Et le même programme avec l'import de PySFML

    Code:

    #!/usr/bin/python2.6 
    import os 
    from PySFML import sf 
    print os.getcwd()
    


    Il me retourne

    Code:
    /System/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/Resources
    



    Conséquence : Quand je veux faire un self.image.LoadFromFile("./data/images/background.png") par exemple ça ne fonctionne pas je suis obliger de faire

    self.image.LoadFromFile("/Users/vianney/Documents/Programmation/python/towerDefense/data/images/background.png")

    ce qui est assez embetant pour la portabilité du programme :s

    cependant je ne sais pas si cela viens vraiment de PySFML ou de python :s
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      12 août 2010 à 10:30:46

      Si c'est une question de portabilité, il suffit simplement d'imposer le répertoire en utilisant la fonction chdir du module os.

      Tu ne seras plus embêté. Maintenant pour le problème de changement de répertoire courant je ne vois pas, désolé, surtout que je n'utilise pas pySFML.

      • Partager sur Facebook
      • Partager sur Twitter
        12 août 2010 à 13:16:35

        Je suis d'accord pour os.chdir mais je ne peut pas connaitre à l'avance le répertoire dans lequel il lance le programme. Donc la personne qui lance le programme sera obliger d'indiquer le repertoire manuellement. Moi ce que j'aimerais c'est pouvoir utiliser les chemins relatifs qui reste bien plus simple et pratique à mon gout
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          12 août 2010 à 13:36:24

          Citation

          Je suis d'accord pour os.chdir mais je ne peut pas connaitre à l'avance le répertoire dans lequel il lance le programme



          Eh bien si avec os.getcwd() justement

          :)

          import os
          print "mon programme s\'execute a partir de %s" %(os.getcwd())
          


          • Partager sur Facebook
          • Partager sur Twitter
            12 août 2010 à 14:33:08

            Bin non justement vu que mon os.getcwd() m'affiche pas le repertoire courant dans le quel je lance mon programme ^^ il est la le problème
            • Partager sur Facebook
            • Partager sur Twitter
              12 août 2010 à 14:39:50

              Solution un peu crade mais qui résoud le problème :

              import os
              WORK_DIR = os.getcwd()
              from PySFML import sf
              
              print WORK_DIR
              
              • Partager sur Facebook
              • Partager sur Twitter
              Zeste de Savoir, le site qui en a dans le citron !
                12 août 2010 à 15:29:06

                Effectivement j'y est pensé et ça fonctionne comme ça au moins je peux avancer en attendant de trouve un solution plus propre à mon problème.

                Enfaite je me demande si ya pas un os.chdir() dans l'installe de PySFML qui serais apeller au moment de l'import

                Donc la solution

                import os
                WORK_DIR = os.getcwd()
                from PySFML import sf
                os.chdir(WORK_DIR)
                
                print os.getcwd()
                
                • Partager sur Facebook
                • Partager sur Twitter

                Problème avec PySFML

                × 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