Python - 无法查看导入模块的所有属性

时间:2016-12-19 13:24:35

标签: python python-2.7

我对动态模块导入以及dir/vars/__dict__对导入模块的行为有疑问。

我有以下目录树:

|sv
    |--__init__.py
    |tests
        |----__init__.py
        |some_test
            |----test.py
            |----__init__.py
    |tools
        |----__init__.py
        |SVE
            |----__init__.py
            |prun
                |----__init__.py
                |----prun.py

我正在使用此命令运行prun.py

python -m sv.tools.SVE.prun.prun

prun.py中,我有这段代码(我将其称为Critical_Code):

sys.path.insert(1 ,full_path_to_folder)
curr_test = importlib.import_module("test", "sv.tests." + "some_test")
print dir(curr_test)

full_path_to_folder指向ROOT/sv/tests/some_test

这就是sv/tests/some_test/test.py的样子:

import getpass
from sv.tools.SVE.svTest.svTest import Test
import sv.tools.SVE.utils.utils as utils
import sv.tools.SVE.utils.remote_operations as remote_operations


class NewClass(Test):
    pass

经过这么长的序言,这是我的问题: 我正在运行prun,并且我使用import_module导入test.py并使用dir()打印了它的内容,结果就是这样:

['NewClass', 'Test', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'getpass', 'remote_operations', 'utils']

我希望看到的是什么。

但是当我从Critical_Code中删除第一行并且不将路径添加到sv / tests / some_test到PATH时,这就是dir()打印的内容:

['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']

其中不包含test.py中的所有导入及其中定义的类。

为什么?当我向PATH添加some_test的路径时,为什么dir()显示更多? 我尝试使用vars和__dict__,但它们的行为都相同。

0 个答案:

没有答案