Where is the c source code of the import mechanism that ignores invalid directory?

Mark Lawrence breamoreboy at yahoo.co.uk
Tue Jul 21 12:16:27 EDT 2015


On 21/07/2015 16:35, Shiyao Ma wrote:
> Hi,
>
> It looks to me that the import system of Python will ignore invalid
> directories and cache the result in memory.
>
> For example, the following code:
> paste here: https://bpaste.net/show/b144deb42620
>
> #!/usr/bin/env python3
>
> import  sys
> import  os
> import  shutil
>
> sys.path.append("./test")
> shutil.rmtree("./test",  ignore_errors=True)
>
> try:
>      import  foo
> except  ImportError:
>      os.mkdir("./test")
>      with  open("./test/foo.py",  "w")  as  f:
>          f.write("print(3)")
>
>      import  foo
>
> the second import foo will fail even though it's there. This is because
> when doing the first import foo, the directory .test doesn't exist, and
> Python ignores that directory forever.
>
>
> I am interested in the c side implementation of this "ignoring" part.
>
>
> Any body help me to pinpoint the exact c source location?
>
> Thanks.
>
> --
>
> 吾輩は猫である。ホームーページはhttps://introo.me <http://introo.me>。
>

Start here https://hg.python.org/cpython/file/6629773fef63/Python/import.c

-- 
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence




More information about the Python-list mailing list