New submission from Håkon Hægland:
I have the following folder structure:
.
├── aaa
│ ├── bbb
│ │ ├── ccc.py
│ │ └── __init__.py
│ ├── bbb.py
│ └── __init__.py
├── __init__.py
└── t.py
./t.py:
import sys
sys.path = ['.']
import aaa.bbb
print(aaa.bbb.get_name())
./aaa/bbb.py:
def get_name():
return "aaa/bbb"
however, when I run the main script:
$ python -B t.py
Traceback (most recent call last):
File "t.py", line 5, in <module>
print(aaa.bbb.get_name())
AttributeError: module 'aaa.bbb' has no attribute 'get_name'
The reason is that there is also a package with name 'aaa.bbb' (i.e. file
"./aaa/bbb/__init__.py") and python will see this package before it sees my
module "./aaa/bbb.py" and will never load the module.
If this is correct, than this is a bad design in my opinion. I should be
possible to use a module with the same name as a package.
Thanks for considering this issue, and let me know if I can help improve Python
at this point.
Note: I asked the question first at stackoverflow.com:
https://stackoverflow.com/q/44227763/2173773
----------
components: Interpreter Core
messages: 294682
nosy: hakonhagland
priority: normal
severity: normal
status: open
title: It should be possible to use a module name with the same name as a
package name
type: enhancement
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue30503>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com