[Python-Dev] How to block a module import

Nick Coghlan ncoghlan at gmail.com
Tue Jul 13 14:48:02 CEST 2010


On Tue, Jul 13, 2010 at 10:37 AM, Alexander Belopolsky
<alexander.belopolsky at gmail.com> wrote:
> In my experiments, 0 is not equivalent to None:
>
>>>> import sys, time
>>>> sys.modules['time'] = 0
>>>> __import__('time')
> 0
>>>> sys.modules['time'] = None
>>>> __import__('time')
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> ImportError: No module named time
>
>  Am I missing something?

I don't think so. I suspect I got away with this mistake because the
imports I was trying to block in the test suite were all C
acceleration imports of the form "from <module> import *", and those
will blow up anyway since zero doesn't have __dict__ or __all__
attributes.

Cheers,
Nick.

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


More information about the Python-Dev mailing list