首页 >后端开发 >Python教程 >如何在 Python 中可靠地实现相对导入?

如何在 Python 中可靠地实现相对导入?

Susan Sarandon
Susan Sarandon原创
2024-12-25 00:16:10398浏览

How to Reliably Implement Relative Imports in Python?

在 Python 中实现相对导入

在 Python 中使用分层目录结构时,有必要从其他子目录导入模块。使用“..”的传统相对导入在某些情况下可能会导致错误。特别是,当通过将模块作为参数传递给解释器来将其作为主模块执行时,相对导入会失败。

根据 PEP 328,相对导入依赖于模块的 name 属性确定其在包层次结构中的位置。但是,当 name 设置为 '__main__' 时(就像将模块作为主模块运行时的情况一样),相对导入将被解析为就像该模块是顶级模块一样,无论其文件如何系统位置。

为了解决这个问题,Python 2.6 引入了引用相对于主模块的模块的功能。 PEP 366 中对此进行了描述。通过利用此功能,可以执行相对导入,而不会遇到“尝试在非包中进行相对导入”错误。

示例:

在如下目录结构中:

要从 mod1 导入 mod2,您可以使用以下命令语法:

或者,如果您没有将该模块作为主模块运行,则通常的相对导入语法将起作用:

以上是如何在 Python 中可靠地实现相对导入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn