Yep. I followed from bltmodule.c(the import function) and got to the import.c file, and finally got lost.
Regards. On Tue, Jul 21, 2015 at 12:16 PM, Mark Lawrence <breamore...@yahoo.co.uk> wrote: > 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 > > -- > https://mail.python.org/mailman/listinfo/python-list > -- 吾輩は猫である。ホームーページはhttps://introo.me <http://introo.me>。
-- https://mail.python.org/mailman/listinfo/python-list