Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Inscrit en
    avril 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 11
    Points : 0
    Points
    0

    Par défaut Importation relative impossible

    Bonjour. J'essaie d'importer de façon relative, par exemple pour utiliser du code des fichier1 ou fichier2 depuis le fichier3.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dossier1/       
          __init__.py               
          fichier1.py
          dossier2/                  
                  __init__.py
                  fichier2.py
          dossier3/                  
                  __init__.py
                  fichier3.py
    Mais cela ne fonctionne absolument pas ! J'obtiens ce genre d'erreur :
    system error: parent module " not loaded, cannot performe relative import
    J'ai pourtant l'impression d'avoir suivi la documentation : http://docs.python.org/3/tutorial/mo...age-references

    En fouillant sur internet j'ai trouvé des choses à ce sujet mais, honnêtement, je n'y comprend rien. Est-il possible oui ou non d'importer comme le dit la documentation ? Sinon quelle alternative choisir ? Mettre tous mes fichiers dans le même dossier ?

    (note : je n'ai aucun problème pour importer depuis 2 ou 3 vers 1)

  2. #2
    Expert Confirmé

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 858
    Points : 2 567
    Points
    2 567

    Par défaut

    Salut,

    Pourquoi parles-tu d'import relatif ?

    Que ce soit sous Python 2 ou 3, si je fais:
    Code :
    1
    2
     
    from dossier2.fichier2 import Foo
    dans fichier3 ça fonctionne sans problème.

    Exactement comme je ferai dans n'importe quel module du dossier root.
    Vincent
    Oqapy . Qarte . PaQager

  3. #3
    Invité de passage
    Inscrit en
    avril 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 11
    Points : 0
    Points
    0

    Par défaut

    Import relatif: "donner le chemin par rapport au répertoire du fichier " ? Mais j'ai peut-être mal compris.

    Malheureusement j'obtiens l'exception :
    Code :
    ImportError: No module named 'dossier2'
    Même en copie/collant le fichier depuis le dossier root où l'importation fonctionnait.


    Edit :

    Ah ! Je pense avoir compris ! En fait j'essayais d’exécuter fichier3 directement, c'est ça qui ne fonctionne pas.
    Par contre si j'importe fichier3 dans fichier1 et que fichier3 utilise fichier2 là ça marche.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •