Python ImportLib'没有模块命名'

时间:2016-06-27 19:20:16

标签: python python-importlib

我试图将变量用作从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目录中,但无济于事。我确定它只是一个愚蠢的小东西我不知道 - 有人知道吗?

1 个答案:

答案 0 :(得分: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