function to do dynamic import?

bambam david at asdf.asdf
Tue Sep 11 01:52:05 EDT 2007


import works in the main section of the module, but does
not work as I hoped when run inside a function.

That is, the modules import correctly, but are not visible to
the enclosing (global) scope.

Questions:
(1) Where can I read an explanation of this?
(2) Is there a work around?

BTW, sys.modules("filename") shows that the module is
loaded, I just don't know how to use it when loaded that
way.  Also, if I import again at the global scope, the module
name becomes available.

Steve.

---
>>> def gim():
... exec "import gamel"
...
>>> gim()
>>> sys.modules["gamel"]
<module 'gamel' from 'c:\gamel.pyc'>
>>>gamel
NameError: name 'gamel' is not defined
>>>exec "import gamel"
>>>gamel
<module 'gamel' from 'c:\gamel.pyc'> 





More information about the Python-list mailing list