**目录结构**
#--- root
# --- a.py
# --- b.py
# --- folder_a
# --- c.py
# --- d.py
# --- folder_b
# --- e.py
# --- main.py
#
# 运行 main.py 时,需要导入 c.py的包
报错信息
(base) h@ai:~/work/code/YOLOX/tools$ python main.py
Traceback (most recent call last):
File “main.py”, line 31, in
from folder_a.c import fun1, fun2
ModuleNotFoundError: No module named ‘folder_a’
解决方法
# 在main.py文件夹,impor c 之前加入以下代码
import pathlib
import sys
FILE = pathlib.Path(__file__).absolute() # 当前运行的main.py文件路径
ROOT = FILE.parents[0] # 加入 main.py所在文件夹路径
if str(ROOT) not in sys.path:
sys.path.append(str(ROOT))
sys.path.insert(0, str(ROOT))
# 上面不行再加入
import folder_a
# 直接从 folder_a 导入c.py文件的包
from folder_a.c import func
# 注意ROOT 需要转换为 str