I am using Python 3.10.
- I created a module
os.pyin a directory,my_dir. - I am trying to access my
os.pyusingimport os, frommy_dirdirectory. - But it is loading Python's
osmodule, not mine. - I inserted
my_dirinsys.pathas a first element, but still it's loading Python'sosmodule. - I repeated the same with another standard library of Python 3,
datetime. But it's working as expected. i.e., it's loading mydatetime.py, not Python's.
Why does only the os module have this problem? Is it a bug in Python 3?
CodePudding user response:
if you want to import some module A that happens to have the name of some other module B, that its placement in the import hierarchy mean that module B is found first, then you need to use a relative import to clearly differentiate between the two from withing modules in the same package
for example, said you have
my_dir
__init__.py
os.py
app.py
for app.py to use your os.py you do
from .os import X
