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 piem (site web personnel) . Évalué à 1.
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 Hugo F . Évalué à 1.
malgré que le fichier module_locla_1.py se trouve dans le sous repertoire modules_locaux
# Séparateur de répertoire
Posté par Florent MANENS . Évalué à 2.
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 Hugo F . Évalué à 1.
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 Hugo F . Évalué à 1.
Merci pour votre aide précieuse :)
[^] # Re: Séparateur de répertoire
Posté par Florent MANENS . Évalué à 1.
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.