Modules importeren uit bovenliggende map
Ik gebruik Python 2.5.
Dit is mijn mappenstructuur:
ptdraft/
nib.py
simulations/
life/
life.py
(Ik heb ook __init__.py
in elke map, hier weggelaten voor de leesbaarheid)
Hoe importeer ik de nib
module vanuit de life
module? Ik hoop dat het mogelijk is zonder te sleutelen aan sys.path.
Opmerking: De hoofdmodule die wordt uitgevoerd staat in de ptdraft
map.
539
3
Je zou relatieve imports kunnen gebruiken (python >= 2.5):
(What's New in Python 2.5) PEP 328: Absolute and Relative Imports
EDIT: nog een punt '.' toegevoegd om twee pakketten omhoog te gaan
Het lijkt erop dat het probleem niet te maken heeft met het feit dat de module in een bovenliggende map staat of iets dergelijks.
U moet de directory die
ptdraft
bevat toevoegen aan PYTHONPATHU zei dat
import nib
bij u werkte, dat betekent waarschijnlijk dat uptdraft
zelf (niet zijn parent) heeft toegevoegd aan PYTHONPATH.Als het toevoegen van uw module map aan het PYTHONPATH niet werkte, kunt u de sys.path lijst in uw programma aanpassen waar de Python interpreter zoekt naar de modules om te importeren, zegt de python documentatie:
Dit wetende, kunt u het volgende doen in uw programma: