New submission from Shai Berger:

Consider the following directory structure:

a-\
  __init__.py
  b.py
  b-|
    __init__.py

Now, in Python (I checked 2.7.3 and 3.2.3, haven't seen the issue mentioned 
anywhere so I suspect it is also in later Pythons), if you import a.b, you 
always get the package (that is, the b folder), and the module (b.py) is 
silently ignored. I tested by putting the line """print("I'm a package")""" in 
a/b/__init__.py and """print("I'm a module")""" in a/b.py.

This becomes a real problem with tools which find modules dynamically, like 
test harnesses.

I'd expect that in such cases, Python should "avoid the temptation to guess", 
and raise an ImportError.

Thanks, Shai.

----------
components: Interpreter Core
messages: 181225
nosy: shai
priority: normal
severity: normal
status: open
title: import silently prefers package over module when both available
type: behavior
versions: Python 2.7, Python 3.2

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

Reply via email to