我有一个像
这样的变量k = os
如果我必须导入操作系统 我可以写
import os
然后我没有错误
但是如何导入k(k实际上是os
)
我试过了
import k
然后我得到错误,没有模块。
我尝试命名k = 'os'
而不是k = os
。我仍然遇到同样的错误
更新
实际上我必须从环境变量DJANGO_SETTINGS_MODULE中的设置文件中import DATABASES
变量
我怎样才能实现这个目标
from os.environ['DJANGO_SETTINGS_MODULE'] import DATABASES
答案 0 :(得分:7)
如果要根据字符串导入模块,请使用importlib
模块:
>>> import importlib
>>> os = importlib.import_module('os')
>>> os
<module 'os' from '/usr/lib/python2.7/os.pyc'>
当你做这样的事情时:
>>> k = 'os'
>>> import k
然后Python仍然按照您的意图查找名为k.py
,k.pyc
等文件而不是os.py
的文件。
答案 1 :(得分:3)
您可以使用__import__
功能:
k = 'os'
module = __import__(k)