首页 > 后端开发 > Python教程 > 如何修复 Python 中的'尝试在非包中进行相对导入”错误?

如何修复 Python 中的'尝试在非包中进行相对导入”错误?

Linda Hamilton
发布: 2024-12-18 14:08:11
原创
822 人浏览过

How to Fix

使用 __init__.py 解决“尝试在非包中相对导入”错误

使用相对路径导入模块可能会在使用 Python 包结构时带来挑战。其中一个问题是尝试跨包目录导入模块时遇到的“尝试在非包中相对导入”错误,尽管存在 __init__.py 文件。

要了解根本原因,掌握这一点至关重要Python 的导入机制如何运行。导入通常是相对于当前文件的 name 执行的。但是,当直接执行文件时,它会采用“__main__”名称而不是通常的名称。这种特性会破坏相对导入,从而导致上述错误。

不要直接运行代码,请考虑使用 -m 选项,它允许您将模块视为脚本并为其分配适当的名称。例如,要使用此方法执行 core_test.py,请输入以下命令:

python -m pkg.tests.core_test
登录后复制

或者,您可以使用 package 属性在模块本身内指定包名称。即使文件直接作为脚本运行,此技术也可确保相对导入正常运行。有关此方法的更多详细信息,请参阅 Python 增强提案 366 (PEP-366)。

以上是如何修复 Python 中的'尝试在非包中进行相对导入”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板