从父文件夹导入模块
2022-09-05 01:15:22
我正在运行Python 2.5。
这是我的文件夹树:
ptdraft/
nib.py
simulations/
life/
life.py
(我在每个文件夹中也有,为了便于阅读,这里省略了)__init__.py
如何从模块内部导入模块?我希望有可能在不修改sys.path的情况下完成。nib
life
注意:正在运行的主模块位于文件夹中。ptdraft
我正在运行Python 2.5。
这是我的文件夹树:
ptdraft/
nib.py
simulations/
life/
life.py
(我在每个文件夹中也有,为了便于阅读,这里省略了)__init__.py
如何从模块内部导入模块?我希望有可能在不修改sys.path的情况下完成。nib
life
注意:正在运行的主模块位于文件夹中。ptdraft
你可以使用相对导入(python >= 2.5):
from ... import nib
(Python 2.5 中的新增功能)PEP 328:绝对和相对进口
编辑:添加了另一个点'.'以上升两个包
相对导入(如 中所示)仅适用于包。导入当前模块父目录中的“mymodule”:from .. import mymodule
import os
import sys
import inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0, parentdir)
import mymodule
编辑:属性并不总是给定的。我现在建议使用检查模块来检索当前文件的文件名(和路径),而不是使用__file__
os.path.abspath(__file__)