平时工作用python想导入自己写的的函数、文件、package的时候,可能经常会遇到一个错误,就是明明我的文件就在那里,可为啥报错提示找不到呢?!
比如上面这个文件结构,我想在clip.py文件中导入model.py文件中的build_model函数:
from .model import build_model
于是我运行命令行指令:
python clip.py
结果报错:
这是为什么呢?原因在于Python的包导入机制
要解决这个问题,要将clip目录变成一个包,添加__init__.py文件
如果已经添加了__init__.py文件但还是报错,可能是因为直接运行.py文件,应该将代码作为模块运行:
python -m clip.clip
这样就可以正常运行啦!