0

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

我有一个文件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 在编译函数中传递,因此我不能在导入中使用。

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

4

1 回答 1

0

那这个呢?

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

顺便说一句__import__()是一个内置函数,因此您可以从任何地方访问它。虽然它比 更复杂/复杂importlib.import_module(),但它更灵活,而且与文档所说的相反,它在日常代码中非常有用。

于 2015-10-04T06:30:29.693 回答