首页  >  文章  >  后端开发  >  在 Python 中使用相对导入时如何修复 ModuleNotFoundError?

在 Python 中使用相对导入时如何修复 ModuleNotFoundError?

DDD
DDD原创
2024-10-29 04:52:29760浏览

 How to Fix ModuleNotFoundError When Using Relative Imports in Python?

Python 中的相对导入:对 ModuleNotFoundError 进行故障排除

使用多个 Python 模块时,经常会遇到 ModuleNotFoundError。当尝试使用相对导入路径从未作为包的一部分执行的文件导入模块时,通常会发生此错误。

要理解此错误,区分相对导入和绝对导入非常重要:

  • 绝对导入指定完整模块路径,无论当前模块的位置如何。
  • 相对导入允许导入相对于当前模块在包中的位置。

在提供的示例中,test.py 尝试使用相对导入路径(导入配置)导入 config.py。但是,当 test.py 不作为包的一部分运行时(例如直接作为脚本执行时),main 将是当前模块,不包含在包中。

因此,不能从 main 模块使用相对导入。相反,您应该使用绝对导入(来自 .import config)。但是,使用绝对导入而不将包含文件夹 (ryan) 添加到 sys.path 将导致 ModuleNotFoundError。

要解决此问题,您必须:

  • 修改您的目录从包目录中构造并执行脚本,确保 sys.path 包含包路径。
  • 利用包感知的导入方法,例如将 __init__.py 文件插入到定义包的子目录中。

这些步骤到位后,绝对导入和相对导入都应该按预期运行。

以上是在 Python 中使用相对导入时如何修复 ModuleNotFoundError?的详细内容。更多信息请关注PHP中文网其他相关文章!

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