标题可能不正确,但这是我能想到的最接近的。
我有一个 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是在编译函数中传递的,因此我无法在导入时使用。
我的问题可能太长或太明显,但我一直在苦苦挣扎。任何帮助表示赞赏。
答案 0 :(得分:0)
这个怎么样?
# Equivalent to dynamically `import`ing `module`
moduleName = 'module.configuration'
module = __import__(moduleName)
BTW ,__import__()
是CPS,因此您可以从任何地方访问它。虽然它比importlib.import_module()
更复杂/更柔和,但它更灵活,而且与文档所说的相反,它在日常代码中非常有用。