Python 3 中的相对导入:对 ModuleNotFoundError 进行故障排除
在 Python 3 中,相对导入允许您在同一包中导入模块。但是,当遇到错误“ModuleNotFoundError:没有名为 'x' 的模块”时,了解相对导入和绝对导入之间的区别至关重要。
绝对导入
绝对导入在 sys.path 上找到模块,这是 Python 搜索模块的目录列表。要执行绝对导入,请使用以下语法:
<code class="python">import module</code>
在您的示例中,绝对导入 config.py 将如下所示:
<code class="python">import config</code>
相对导入
相对导入相对于包中当前模块的位置导入模块。要执行相对导入,请使用以下语法:
<code class="python">from . import module</code>
但是,相对导入要求模块位于包内。如果 test.py 不在包中,则相对导入将不起作用。
故障排除
根据提供的代码,问题是 test.py 是当它不属于包的一部分时尝试执行相对导入。错误消息“ImportError: Cannot import name 'config'”表示在相对路径中找不到配置模块。
解决方案
要解决此问题,您可以通过将 __init__.py 文件添加到与 test.py 相同的目录中,使 test.py 成为包的一部分。或者,您可以使用绝对导入,如下所示:
<code class="python">import config</code>
这将在 sys.path 中查找 config.py,确保导入按预期工作。
以上是以下是一些适合文章内容的基于问题的标题: * \“ModuleNotFoundError:没有名为 \'x\' 的模块 - 为什么我在 Python 3 中收到此错误?\” * \“为什么我不能导入的详细内容。更多信息请关注PHP中文网其他相关文章!