python import上一级的同级目录下的模块
假设你有以下文件结构:
- main.py
- my_module/
- __init__.py
- my_submodule.py
- other_module/
- some_module.py
-
如果你要在 my_submodule.py 中导入 other_module目录下面的 some_module.py,可以使用以下方法:
# my_submodule.py
import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'other_module')))
from some_module import some_function
这个方法首先使用 os.path.dirname()
和 os.path.join()
函数来获取上一级目录 my_module
的路径,然后与 other_module
目录拼接成绝对路径,最后将此路径添加到 sys.path
中,这样我们就可以从 some_module.py
中导入需要的函数或变量了。
一个小demo
在目录调用错误是,会有报错ModuleNotFoundError: No module named 'utils.datasets'
此时的目录层级和import方法如下
使用上述方法修改后可改为
运行无报错