如何调用python文件中的函数,该函数是其他python文件的一部分

时间:2015-10-04 06:22:42

标签: python python-2.7 python-importlib

标题可能不正确,但这是我能想到的最接近的。

我有一个 sample.py 文件,就像使用 argparse 制作的命令行解析器一样。 根据参数,它调用其他python文件。 例如。 - 在-C中编译模块选项。

cmd>python sample.py -M module -C

根据模块名称,配置文件位于module / configuration.py

我必须从configuration.py文件中调用几个函数。什么是最好的方法。 我无法导入python文件,因为路径总是变化的,文件需要在运行时导入。

有没有办法解决这个问题?

我已经阅读过有关importlib包的内容,但无法让它供我使用。

我的框架结构:

sample.py
|
APIs
   |
    compile.py

/module/configuration.py

compile.py文件样本

 #compile.py
import <packages>

def compile(module_name):
    # call some function in /module/configuration.py file.

问题是module_name是在编译函数中传递的,因此我无法在导入时使用。

我的问题可能太长或太明显,但我一直在苦苦挣扎。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这个怎么样?

# Equivalent to dynamically `import`ing `module`
moduleName = 'module.configuration'
module = __import__(moduleName)

BTW __import__()CPS,因此您可以从任何地方访问它。虽然它比importlib.import_module()更复杂/更柔和,但它更灵活,而且与文档所说的相反,它在日常代码中非常有用。