Python 中的相对导入
了解 Python 中的相对导入对于避免“尝试在非包中进行相对导入”错误至关重要。
脚本与脚本模块
一个关键的区别来自于 Python 文件的加载方法。当直接作为脚本执行时,其名称设置为 __main__。相反,如果导入,其名称包含包信息。
命名约定
例如,如果导入 package/subpackage1/moduleX.py 中的 moduleX,则其名称变为 package.subpackage1.moduleX。但是,如果直接运行,其名称为 __main__。
相对导入
相对导入依赖模块的名称来确定其包层次结构。名称中不包含点的模块不会被视为包的一部分。
错误原因
在名称表明其名称的模块中尝试相对导入时会发生错误re 不在包中(即,它们的名称缺少点)。这包括脚本(因为 main 没有点)和直接从当前目录加载的模块(Python 将当前目录添加到其搜索路径)。
解决方案
注释
以上是如何避免Python中'尝试在非包中进行相对导入”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!