Forum Programmation.python Importer des modules des sous-répertoires

Posté par  .
Étiquettes : aucune
0
17
juin
2005
Je débute en python.
Comment importer un module module_local_1 du répertoire /home/bob/programme_python/modules_locaux/ a partir d'un script situé dans /home/bob/programme_python/ ?
Après quelques recherches, j'ai trouvé une méthode:

import os
import sys
sys.path.append(os.getcwd()+'/modules_locaux')
import module_local_1

Cela me semble assez compliqué, de plus a cause du '/' je ne suis pas sur que cela marche sous windows qui utilise '\' pour séparer les répertoires.
Existe-il une méthode plus simple? merci
  • # Importer des modules des sous-répertoires

    Posté par  (site web personnel) . Évalué à 1.

    import os
    import sys
    import modules_locaux.module_local_1

    fonctionnera tout aussi bien si tu lances ce code depuis /home/bob/programme_python,
    ou si tu installes modules_locaux dans /usr/lib/python2.3/site-packages par exemple.
    • [^] # Re: Importer des modules des sous-répertoires

      Posté par  . Évalué à 1.

      Cela ne semble pas marcher j'obtien l'erreur:
      Traceback (most recent call last):
      File "./t2.py", line 4, in ?
      import modules_locaux.module_local_1
      ImportError: No module named modules_locaux.module_local_1

      malgré que le fichier module_locla_1.py se trouve dans le sous repertoire modules_locaux
  • # Séparateur de répertoire

    Posté par  . Évalué à 2.

    regardes du coté de :
    os.sep et os.path.join(), tu devrais trouver ton bonheur pour avoir des séparateurs multiplateforme.

    dans le répertoire /home/bob/programme_python/modules_locaux/, tu as un fichier __init__.py ?

    • [^] # Re: Séparateur de répertoire

      Posté par  . Évalué à 1.

      dans le répertoire /home/bob/programme_python/modules_locaux/, tu as un fichier __init__.py ?

      Non... A quoi sert ce fichier? je sais je suis un noob!
      Sinon je peux utiliser os.chdir()
      • [^] # Re: Séparateur de répertoire

        Posté par  . Évalué à 1.

        Pour finir, voici la methode employée:

        #! /usr/bin/python
        import os
        import sys
        sys.path.append(os.getcwd()+os.sep+'modules_locaux')
        import module_local_1


        Merci pour votre aide précieuse :)
      • [^] # Re: Séparateur de répertoire

        Posté par  . Évalué à 1.

        il y a beaucoup d'informations pour apprendre Python dans ce livre :
        http://diveintopython.org/

        Pour les fichiers __init__.py, regardes la documentation Python ici :
        http://docs.python.org/tut/node8.html

        Il peut être vide ce fichier :p

        Pour la solution que tu as retenu, je maintien que ça n'est pas vraiment ce qu'il y a de plus joli.

        Ajoutes un fichiers __init__.py vide et fais un
        import modules_locaux.module_local_1

        Bon courage :p

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.