STINNER Victor <victor.stin...@haypocalc.com> added the comment:

> I suggest also ignoring ENOTDIR and EISDIR. Not sure about EACCES.

We should maybe mimick the io module:


>>> open('Lib')
IsADirectoryError: [Errno 21] Is a directory: 'Lib'

In the io module, opening a directory raises an exception. In the import 
machinery, an explicit check is done (stat+ISDIR) before opening the file. The 
file is ignored if it is a directory. We can maybe remove the test before 
opening the file, and handle IsADirectoryError exception instead.

--

I don't think that fopen() can fails with ENOTDIR. rmdir() can fail with 
ENOTDIR.

--

For EACCES: Python ignores currently these errors. I was already surprised by 
this behaviour. My use case: I have two users (haypo and fusil). I "installed" 
a module of haypo user into /usr/lib/python... using symlink, but fusil doesn't 
have access to /home/haypo. When fusil tries to load a module, import fails 
without any warning or error.

Fail with an error is maybe not a good idea because it's not because a 
directory of sys.path cannot be read, than the import will fail. The module can 
be found in another (accessible) directory.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue13192>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to