Accessing global namespace

John Roth newsgroups at jhrothjr.com
Mon Oct 6 12:40:20 EDT 2003


"Tonguç Yumruk" <trooper at ttnet.net.tr> wrote in message
news:mailman.1065436150.27416.python-list at python.org...
> I'm trying to build a completely plug-in based system. One of my
> problems is importing a package dynamically. I'm trying to emulate the
> import command. The __import__() function or imp module doesn't help me
> much because they only return the module. I want to register the module
> with it's name in the current namespace. I can do it by:
>
> globals()[module_name] = __import__(module_name)
>
> But I don't think it's a good thing to access the global namespace
> directly. I prefer using setattr() but I cannot access the current
> namespace as an object I want something like
>
> setattr(__main__,__import__(module_name))
>
> Is that possible? I'm using Python 2.1 on Debian Woody

The easiest way to do a dynamic import is to build an
import statement and feed it into the exec statement.

On the other hand, I'd question why you actually want
the name in the global namespace of your module. Might
putting it in some kind of data structure be better for your
program logic? I don't know enough about your application
to tell, though.

John Roth

>
> -- 
> Love, Respect, Linux
>
############################################################################
> "Has anyone had problems with the computer accounts?"
> "Yes, I don't have one."
> "Okay, you can send mail to one of the tutors ..."
> -- E. D'Azevedo, Computer Science 372
>
############################################################################
> Tonguç Yumruk
>






More information about the Python-list mailing list