__import__只导入__init__.py

时间:2016-04-18 03:22:42

标签: python

我遇到了__import__方法的问题。它似乎只导入模块的基本目录,但不导入文件。

例如我有:

test_suite/assert_array_length.py

我将其传递给__import__

moduleLocation = "test_suite.assert_array_length"
module = __import__(moduleLocation)
print module

我得到了:

[sub_directories]/test_suite/__init__.pyc

通话顺序从run_tests.py转到test_runner.pytest_runner.py然后导入assert_array_length.py。它们的布局如下:

run_tests.py
|-----------test_runner.py
|-----------assert_array_length.py

因为它正在导入__init__.py,我无法从assert_array_length.py文件中获得所需内容。

1 个答案:

答案 0 :(得分:0)

__import__导入您要求的模块。但是,如果您选中documentation,则会发现以下内容:

  

如果名称变量的格式为package.module,通常会返回顶级包(直到第一个点的名称),不是按名称命名的模块。

您可能更喜欢importlib.import_module,如果您要导入package.module,则会package而不是package.module