0

我正在尝试将变量用作从 Python 中导入的模块。

使用 ImportLib 我已经成功地找到了测试...

sys.path.insert(0, sys.path[0] + '\\tests')
tool_name = selected_tool.split(".")[0]
selected_module = importlib.import_module("script1")
print(selected_module)

...通过打印 select_module 我可以看到它成功地找到了脚本:

<module 'script1' from 'C:\\Users\\.....">

但是,当我尝试在代码中使用此变量从中导入模块时:

from selected_module import run
run(1337)

程序退出并出现以下错误:

ImportError: No module named 'selected_module'

我试图将一个init .py 文件添加到脚本所在的主目录和 /test 目录,但无济于事。我确定这只是我想念的愚蠢的小东西-有人知道吗?

4

1 回答 1

1

导入语句对变量不敏感!它们的内容被视为文字

一个例子:

urllib = "foo"
from urllib import parse   # loads "urllib.parse", not "foo.parse"
print(parse)

请注意,这from my_module import my_func将简单地绑定my_module.my_func到本地名称my_func。如果您已经通过 导入了模块importlib.import_module,您可以自己执行此操作:

# ... your code here
run = selected_module.run  # bind module function to local name
于 2016-06-27T19:33:48.453 回答