当尝试从目录结构中的不同子包导入模块时,您可能会遇到“尝试在非-包”错误。此问题源于将模块作为主模块运行,它将相对导入视为模块位于顶层。
要解决此问题,请确保该模块没有作为主模块执行。在 Python 2.6 及更高版本中,您可以使用 package 属性来确定模块在包层次结构中的位置并相应地解析相对导入。有关此更改的更多信息,请参阅 PEP 366。
package 属性提供了比 sys.path 操作黑客更干净的解决方案。它允许您导入相对于主模块的模块,类似于 PEP 366 中描述的行为。
以上是如何在Python中执行相对导入并避免'尝试在非包中进行相对导入”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!