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

Shiyao Ma i at introo.me
Tue Jul 21 12:44:11 EDT 2015


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 <breamoreboy at 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>。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20150721/9c29f4cd/attachment.html>


More information about the Python-list mailing list