报错信息 ImportError: attempted relative import with no known parent package
报错信息的意思是尝试使用相对路径导入但找不到已知的父级包。一般来说,当你尝试在一个能够运行的.py文件内使用相对路径导入,就会发生此报错。报错的原因在于,python的相对路径导入实际上需要借助当前文件的父级包路径来实现,即通过判断一个.py文件的__name__和__package__属性来得到关于父级包的信息,当在一个能够运行的.py应用文件中,有:
if __name__ == '__main__':
这就在文件中引入了main入口,此时文件的__name__属性为‘__main__’而__package__属性为None,如果在这样的文件中使用相对路径引入,解释器就找不到父级包的任何信息,因此报错。
解决的办法是把相对导入改为绝对导入。