why import plugins used exec instead of __import__?
Alexander Belchenko
bialix at ukr.net
Tue Jun 17 05:49:28 BST 2008
Some people and me discussed various plugin systems in other python forum and pointed at bzrlib
implementation (bzrlib/plugin.py) as good example. Some people said they dislike using exec or eval
in their programs. So bzrlib approach looks not the best. Specifically in bzrlib/plugin.py there is
following code:
for name in plugin_names:
try:
exec "import bzrlib.plugins.%s" % name in {}
except KeyboardInterrupt:
raise
Why there used exec and not __import__? IIUC import statement under the hood calls __import__,
so actually there is no big difference in functionality.
But instead exec must parse python code and then execute corresponding bytecode.
I don't remember when discussion about such change took place, and
can't find it in archives.
Can anyone comment this decision?
Thank you.
More information about the bazaar
mailing list