首页 > 技术文章 > python相对导入常见问题和解决方案

hi3254014978 2021-09-21 21:59 原文

根据编程经验的不同,我们在运行程序时可能经常或者偶尔碰到下面这些问题,仔细观察后会发现这些问题无一例外都出现了一个相同的短语,很容易就可以发现,这个短语就是"relative import"。

ValueError: attempted relative import beyond top-level package
# 翻译:试图在顶级包之外进行相对导入
ImportError: attempted relative import with no known parent package
# 翻译:尝试相对导入,但没有已知的父包
ValueError: Attempted relative import in non-package
# 翻译:试图在非包中进行相对导入
SystemError: Parent module '' not loaded, cannot perform relative import
# 翻译:父模块'xxx'未加载,不能执行相对导入。

既然关于相对导入的报错提示,说明我们在代码中一定用到了相对导入的语法。下面先简单介绍一下相对导入的概念,随后详细介绍相对导入可能的问题和原理,最后给出上面提到的每个报错的解决方案。

绝对导入

既然要介绍相对导入,那必然绕不开绝对导入。绝对导入的格式为 import A.B 或 from A import B

下面是绝对导入的一些

推荐阅读