[Python-Dev] unexpected import behaviour

Nick Coghlan ncoghlan at gmail.com
Sat Jul 31 17:36:27 CEST 2010


On Sun, Aug 1, 2010 at 1:23 AM, Alexander Belopolsky
<alexander.belopolsky at gmail.com> wrote:
> On Sat, Jul 31, 2010 at 11:07 AM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> ..
>> That said, I really don't think catching such a rare error is worth
>> *any* runtime overhead. Just making "__main__" and the real module
>> name refer to the same object in sys.modules is a different matter,
>> but I'm not confident enough that I fully grasp the implications to do
>> it without gathering feedback from a wider audience.
>
> If you make sys.module['__main__'] and sys.module['modname'] the same
> (let's call it mod), what will be the value of mod.__name__?

"__main__", so pickling would remain broken. unpickling would at least
work correctly under this regime though.

The only way to fix pickling is to avoid monkeying with __name__ at
all (e.g. something along the lines of PEP 299, or a special
"__is_main__" flag).

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list