Home > Mobile >  Why am I unable to import my own os module?
Why am I unable to import my own os module?

Time:08-19

I am using Python 3.10.

  1. I created a module os.py in a directory, my_dir.
  2. I am trying to access my os.py using import os, from my_dir directory.
  3. But it is loading Python's os module, not mine.
  4. I inserted my_dir in sys.path as a first element, but still it's loading Python's os module.
  5. I repeated the same with another standard library of Python 3, datetime. But it's working as expected. i.e., it's loading my datetime.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
  • Related