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