寻找了很多方法,发现大家把事情讲的复杂了。我这里用最简单的办法来解决父包引用找不到的问题。
报错提示:ImportError: attempted relative import with no known parent package
先给大家看看我的目录结构,model.py和test目录在同一级。train.py在test目录中,model.py在train.py的上一级目录。这时如果直接在train.py中import model会报错。
解决方法:
使用下列代码中前两行代码将系统当前目录切换为上一级目录。 再import即可。
import sys
sys.path.append("..")
import model
sys.path的作用:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块,所以这里是直接把上级目录加到了sys.path里。
“..”的含义:等同于linux里的‘..’,表示当前工作目录的上级目录。实际上python中的‘.’也和linux中一致,表示当前目录。