Détails
Importation de modules à partir du dossier parent
J'utilise Python 2.5.
Voici l'arborescence de mes dossiers :
ptdraft/
nib.py
simulations/
life/
life.py
(J'ai aussi __init__.py
dans chaque dossier, omis ici pour la lisibilité)
Comment puis-je importer le module nib
à partir du module life
? J'espère qu'il est possible de le faire sans bricoler avec sys.path.
Note : Le module principal en cours d'exécution se trouve dans le dossier ptdraft
.
539
3
Vous pourriez utiliser des importations relatives (python >= 2.5) :
[(What's New in Python 2.5) PEP 328 : Absolute and Relative Imports][1]
EDIT : ajout d'un autre point ' ;.' ; pour remonter deux paquets
[1] : http://docs.python.org/2/whatsnew/2.5.html#pep-328-absolute-and-relative-imports
Il semble que le problème ne soit pas lié au fait que le module se trouve dans un répertoire parent ou autre.
Vous devez ajouter le répertoire qui contient
ptdraft
à PYTHONPATHVous avez dit que
import nib
a fonctionné avec vous, cela signifie probablement que vous avez ajoutéptdraft
lui-même (pas son parent) à PYTHONPATH.Si l'ajout de votre dossier de modules au PYTHONPATH n'a pas fonctionné, vous pouvez modifier la liste sys.path de votre programme dans laquelle l'interpréteur Python recherche les modules à importer, comme le dit la [documentation python][1] :
Sachant cela, vous pouvez faire ce qui suit dans votre programme :
[1] : http://docs.python.org/tutorial/modules.html#the-module-search-path