我正在开发一个服务于多个站点的django项目;取决于我想从不同模块导入不同功能的站点;如果我的包名称和模块名称本身是一个字符串,我如何在Python中导入模块?
答案 0 :(得分:10)
__import__
内置函数或imp
模块功能:
>>> sys1 = __import__("sys")
>>> import imp
>>> sys2 = imp.load_module("sys2", *imp.find_module("sys"))
>>> import sys
>>> sys is sys1 is sys2
True
答案 1 :(得分:3)
Django有自己的导入函数来从字符串中获取对象。来自documentation:
dist
使用Python模块的函数。
django.utils.module_loading
导入虚线模块路径并返回路径中姓氏指定的属性/类。如果导入失败,则引发ImportError。例如:
import_string(dotted_path)
相当于:
from django.utils.module_loading import import_string ValidationError = import_string('django.core.exceptions.ValidationError')