IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Importation relative impossible


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Points : 9
    Points
    9
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Salut,

    Pourquoi parles-tu d'import relatif ?

    Que ce soit sous Python 2 ou 3, si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Points : 9
    Points
    9
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. [10g] Export 10g pour import 9i impossible ?
    Par skyarnangel dans le forum Import/Export
    Réponses: 3
    Dernier message: 05/02/2014, 17h40
  2. Import assembly impossible
    Par maxeur dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/08/2010, 15h44
  3. import SVN impossible
    Par miltone dans le forum Subversion
    Réponses: 1
    Dernier message: 05/03/2010, 01h49
  4. Import script impossible
    Par erox44 dans le forum SQL
    Réponses: 2
    Dernier message: 28/04/2008, 20h50
  5. Importation csv impossible
    Par Roller0022 dans le forum WinDev
    Réponses: 2
    Dernier message: 21/12/2006, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo