[Import-sig] Why add '' to sys.path if there's an __init__.py?
Guido van Rossum
guido@python.org
Mon, 02 Oct 2000 20:18:20 -0500
> This relates to SourceForge bug report #115528:
>
> http://sourceforge.net/bugs/?func=detailbug&bug_id=115528&group_id=5470
>
> This reports a problem that I vaguely recall having heard complaints
> about before. Essentially, the user is running Python with a script
> stored in the same directory as the contents of a package:
>
> foo/__init__.py
> module.py
> script.py
>
> The complaint is that "module" can be imported as "module" (in the
> top-level "unnamed" package), and as "foo.module", where it should
> be. I don't think this is actually a bug (which is why I've closed
> the report), but it is clearly something that gets in the way of real
> users.
> I think we get better behavior if we remove '' from sys.path if
> there's an __init__.py file present; importing foo.module would still
> work, but import module would raise an ImportError exception.
> Comments please!
Very clever. But what if the package's (grand*)parent is *not* on
sys.path? I say it's a user error and that's that.
--Guido van Rossum (home page: http://www.python.org/~guido/)