Bonjour,
Je sèche depuis un bon moment sur l'utilisation et la gestion des modules personnels, surtout s'ils ne sont pas dans le dossier en cours.
EDIT : j'ai lu pas mal de documentations sur le sujet, dont des textes en Anglais (je le précise car je le lis assez difficilement) mais je n'ai rien trouvé de bien clair qui puisse m'aider. Le sujet me semble assez complexe.
J'ai une arborescence de ce type :
Je souhaite récupérer une fonction de bibl1.py depuis prog1.py et prog2.py. Alors je peux ajouter le path de Bibli à sys.path mais comme chaque programme l'ajouterait, sans compter qu'ils peuvent être lancés à plusieurs reprises, il faudrait que je teste sa présence pour ne pas qu'il soit ajouté plusieurs fois. Ce n'est pas compliqué mais un peu lourd.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 \DIP\ Bibli\ bibl1.py bibl2.py Progs\ prog1.py prog2.py
Si les modules de Bibli sont dans le dossier Progs, pas de soucis, même chose si Bibli est dans Progs mais je n'y arrive pas quand Bibli et Progs sont au même niveau comme montré dans l'exemple. J'ai bien essayé avec les .. pour arriver au répertoire parent mais j'ai le message d'erreur suivant : ValueError: attempted relative import beyond top-level package.
Autre point avec les modules : si dans le module modul1.py j'initialise des variables, x et y par exemple :
Je peux récupérer leur valeur avec l'instruction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 x = "toto" y = "fifi"
Mais s'ils sont dans une fonction du module, je n'ai pas trouvé comment faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 from modul1 import x,y
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 def fonct() : x = "toto" y = "fifi".
Partager