How to make global imports from a function?

Solution 1:

Imported modules are just variables - names bound to some values. So all you need is to import them and make them global with global keyword.

Example:

>>> math
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined
>>> def f():
...     global math
...     import math
...
>>> f()
>>> math
<module 'math' from '/usr/local/lib/python2.6/lib-dynload/math.so'>

Solution 2:

You can make the imports global within a function like this:

def my_imports(module_name):
    globals()[module_name] = __import__(module_name)