伙计们,我想动态导入python文件和函数。模块名应该传递给像这样的函数:
def scrape(url, foo):
modulename = url['modulename']
import modulename
modulename.modulename(url, foo)
这是错误的:
ImportError: No module named modulename
那么我们怎么能让python使用'modulename'作为变量?
谢谢!
答案 0 :(得分:5)
您可以使用importlib.import_module():
def scrape(url, foo):
import importlib
modulename = importlib.import_module(url["modulename"])
modulename.modulename(url, foo)
答案 1 :(得分:1)
您也可以使用
module = __import__('module_name')
示例:
module = __import__('math')
print module.sqrt(4)
>> 2
或者,如果您还想使用动态方法名称
module = __import__('math')
method = getattr(module, 'sqrt')
method(4)
>> 2