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 <[email protected]>
<http://bugs.python.org/issue17108>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com