I have a variable like
k = os
If I have to import os I can write
import os
then I get no error
But how can I import k ( k is actually os )
I tried
import k
then I got error there is no module.
I tried naming k = 'os' instead of k = os.Still I am getting the same error
Update :
Actually I have to import DATABASES variable from settings file in the environmental variable DJANGO_SETTINGS_MODULE
How can I achieve this
from os.environ['DJANGO_SETTINGS_MODULE'] import DATABASES
-
2You can't use variable names in import statements.Ashwini Chaudhary– Ashwini Chaudhary2013年11月01日 10:43:59 +00:00Commented Nov 1, 2013 at 10:43
-
Any good reason to use variables?Deelaka– Deelaka2013年11月01日 10:45:31 +00:00Commented Nov 1, 2013 at 10:45
-
2I do not understand why to downvote a reasonable question.Val– Val2013年11月01日 12:32:09 +00:00Commented Nov 1, 2013 at 12:32
2 Answers 2
Use importlib module if you want to import modules based on a string:
>>> import importlib
>>> os = importlib.import_module('os')
>>> os
<module 'os' from '/usr/lib/python2.7/os.pyc'>
When you do something like this:
>>> k = 'os'
>>> import k
then Python still looks for file named k.py, k.pyc etc not os.py as you intended.
2 Comments
importlib.import_module over the simpler __import__?__import__ as well, but it is recommended(help(__import__)) to use importlib.import_module module. But when importing packages they differ slightly.You can use the __import__ function:
k = 'os'
module = __import__(k)