Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Général Python
Général Python Forum d'entraide sur les fondamentaux du langage Python, syntaxe, POO, bibliothèque standard, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/02/2013, 14h28   #1
pylearner
Invité de passage
 
Inscription : 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 :
Citation:
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)
pylearner est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 14h44   #2
VinsS
Membre Expert
 
Homme
Inscription : octobre 2008
Messages : 942
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : octobre 2008
Messages : 942
Points : 1 413
Points : 1 413
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
VinsS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 21h38   #3
pylearner
Invité de passage
 
Inscription : avril 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 11
Points : 0
Points : 0
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.
pylearner est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h20.


 
 
 
 
Partenaires

Hébergement Web