2024-05-15 16:32:28 发布
网友
文件夹结构:
main |__ sub1 |__ __init__.py |__ sub2 |__ test.py
我需要在test.py内导入:
test.py
显示此错误:
ValueError: attempted relative import beyond top-level package.
感谢您的回复。在
这是从主源文件夹外部进行测试的特殊用例。main没有理由成为一个包,可能有理由不让它成为一个包。在
main
IMHO,最好的方法是从主目录开始测试。由于当前目录始终在sys.path中,sub1将直接导入,这就足够了:
sys.path
sub1
from sub1 import SomeClass
但根据您的开发环境,您可能需要直接从test目录或main以外的任何目录启动测试。在这种情况下,我不确定这是否是一个最佳实践,我只在我的测试中使用它,但是一个简单的技巧是将测试文件夹的父文件夹添加到sys.path。在
以下是test.py的开头:
把它理解为:一个sys.path技巧,它只允许从测试文件夹访问主源文件夹。在
main和{}都不是包,因为它们都不包含__init__.py。有关详细信息,请参见the relevant Python docs。在
__init__.py
这是从主源文件夹外部进行测试的特殊用例。
main
没有理由成为一个包,可能有理由不让它成为一个包。在IMHO,最好的方法是从主目录开始测试。由于当前目录始终在
sys.path
中,sub1
将直接导入,这就足够了:但根据您的开发环境,您可能需要直接从test目录或main以外的任何目录启动测试。在这种情况下,我不确定这是否是一个最佳实践,我只在我的测试中使用它,但是一个简单的技巧是将测试文件夹的父文件夹添加到
sys.path
。在以下是
^{pr2}$test.py
的开头:把它理解为:一个
sys.path
技巧,它只允许从测试文件夹访问主源文件夹。在main
和{__init__.py
。有关详细信息,请参见the relevant Python docs。在相关问题 更多 >
编程相关推荐