从python中的子文件夹层次结构导入

2024-06-28 20:23:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从测试文件层次结构导入指定的模块

类似于:

test_case1.py
test_subsuite_2
test_sub_2.1.1.py
test_suite2

是否可以在此层次结构上执行运行导入

/project/main.py
/project/test_files

测试文件夹层次结构如下:

test_files
    test_suite1
        test_case1.py
        test_subsuite_1
            test_sub1_1.py
            test_sub1_2.py
        test_subsuite_2
            test_subsuite_2_1
                test_sub_2.1.1.py
            test_sub2_1.py
            test_sub3_2.py

    test_suite2
        test_case2.py
        test_subsuite2_1
            test_sub21_1.py
            test_sub21_2.py
        test_subsuite2_2
            test_sub22_1.py
            test_sub23_2.py

Tags: 模块文件pytestproject文件夹层次结构main
2条回答

在所有文件夹中创建一个名为__init__.py的空文件。然后可以使用.作为文件夹分隔符导入。Documentation here.

关键是在包含要导入的文件的所有子文件夹上创建一个空文件__init__.py。 在您的情况下,必须在以下所有文件夹上创建__init__.py文件-

  • 测试文件
  • 测试文件\测试套件1
  • 测试文件\测试套件1 \测试子套件2
  • test_files\test_suite1\test_subsuite_2\test_subsuite_2_1

另外,在导入文件时,请注意正确指定导入路径,指定从最顶层开始的整个路径,以及用.
分隔的不同文件夹级别 例如,必须通过指定以下内容导入测试用例1:

from test_files.test_suite1 import test_case1

类似地,test_subsuite_2可以通过指定:

from test_files.test_suite1 import test_subsuite_2

相关问题 更多 >