5
votes

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
2
You can't use variable names in import statements. - Ashwini Chaudhary
Any good reason to use variables? - K DawG
@KDawG yes updated the question - madhu131313
I do not understand why to downvote a reasonable question. - Val

2 Answers

7
votes

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.

3
votes

You can use the __import__ function:

k = 'os'
module = __import__(k)