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

时间:2012-07-16 09:48:22

标签: python import python-2.7 subdirectory

我正在尝试从test_file层次结构中导入指定的模块

类似的东西:

test_case1.py
test_subsuite_2
test_sub_2.1.1.py
test_suite2

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

/project/main.py
/project/test_files

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

  • test_files
  • test_files \ test_suite1
  • test_files \ test_suite1 \ test_subsuite_2
  • test_files \ test_suite1 \ test_subsuite_2 \ test_subsuite_2_1

此外,在导入文件时,请注意正确指定导入路径,指定最高级别的整个路径,并使用.分隔的不同文件夹级别 例如,您必须通过指定:

导入test_case1

来自test_files.test_suite1 import test_case1

同样,可以通过指定:

导入test_subsuite_2

来自test_files.test_suite1 import test_subsuite_2

相关问题