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方法如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cAq1ZmKR-1683721861761)(_v_images/20230408211736478_1816.png)]](https://i-blog.csdnimg.cn/blog_migrate/27b49aa3df7b75670c32b77f7fab585c.png)
使用上述方法修改后可改为

运行无报错
在Python中,如果需要在my_submodule.py中导入other_module/some_module.py,可以通过修改sys.path实现。具体做法是使用os库获取当前文件的上一级目录,然后添加到系统路径,从而能成功导入所需模块。这种方法解决了跨目录导入时可能出现的ModuleNotFoundError问题。
632

被折叠的 条评论
为什么被折叠?



