问题描述:
假设projec的目录树是:
code:.
├─scripts
│ train.py
└─src
└─utils
setup.py
tool.py
train.py需要import src.utils as utils
此时可能会出现错误:
ModuleNotFoundError: No module named “src”
解决方法:
显然,不是因为缺少包导致的问题
打印下当前文件的搜索路径
import os
print(os.sys.path)
会发现,路径只有conda的lib库以及当前运行文件的路径,也就是"xxx/code/scripts"
此时,python解释器当然是搜索不到src文件夹下的文件了
解决方法就是,在运行文件(就是上面的train.py)的首行添加以下代码,将根目录添加到Python解释器的搜索路径中:
import os
import inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
os.sys.path.insert(0, parentdir)