On Sat, Jul 23, 2011 at 10:55 PM, Benjamin Peterson <benja...@python.org> wrote: > 2011/7/23 Eric Snow <ericsnowcurren...@gmail.com>: >> The documentation[1] doesn't say, but the implementation of the imp >> module makes me wonder if sys.modules was not meant to be replaceable. >> No doubt this has to do with its tie to the interpreter's modules >> dict. I ran into this doing "sys.modules = sys.modules.copy()" to >> protect the actual sys.modules dict during some import related test >> cases. If the modules I imported were extension modules it broke. >> >> So, is sys.modules not meant to be open to re-binding? > > Not any more or less than other global mutable objects. You can expect > other code to be holding on to old references.
But, isn't sys.modules a little different because other modules (at least the imp module) don't use it. From what I understand the interpreter object's modules dict (to which sys.modules is initially bound) is used directly instead. So rebinding sys.modules causes a disconnect. That's why I am wondering if sys.modules is not meant to be rebound. Are there other objects in the interpreter state that are exposed in sys that would have the same problem? -eric > > > -- > Regards, > Benjamin > _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com