我想导入不同的模块作为变量a。
#views.py
path = os.path.normpath(os.path.join(here, 'module/%s' % a))
sys.path.append(path)
from foo import bar
sys.path.remove(path)
我的文件夹显示如下:
djangoapp---module----a----index.py & __init.py
|-------b----index.py & __init.py
views.py
我这样做是有效的,但是当变量a发生变化时,还有其他方法可以切换模块吗?
我的朋友告诉我最好不要在此过程中修改sys.path的内容。
答案 0 :(得分:1)
您可以从其他位置导入,而不是摆弄sys.path,例如:
module_name = 'a.foo'
module = __import__(module_name, globals(), locals(), ['*'])
在__import__的文档中查看更多内容。
也许importlib.import_module甚至是更好的选择。