$ cat spam.py
import sys
print(f'__name__ = {__name__!r}')
for (name, mod) in sys.modules.items():
try:
if 'spam' not in (mod.__file__ or ''):
continue
except AttributeError:
continue
print(f'sys.modules[{name!r}] = {mod!r} @ 0x{id(mod):x}')
import spam
$ python3 -m spam
__name__ = '__main__'
sys.modules['__main__'] = <module 'spam' from '/home/jwilk/spam.py'> @ 0xf7d86ed8
__name__ = 'spam'
sys.modules['__main__'] = <module 'spam' from '/home/jwilk/spam.py'> @ 0xf7d86ed8
sys.modules['spam'] = <module 'spam' from '/home/jwilk/spam.py'> @ 0xf7caef78
More generally, Python is happy to import the same file multiple times as long as the module name is different.
For example, if there's eggs/bacon/spam.py and you add both "eggs" and "eggs/bacon" to sys.path, you will have two different modules imported after "import bacon.spam, spam".
For example, if there's eggs/bacon/spam.py and you add both "eggs" and "eggs/bacon" to sys.path, you will have two different modules imported after "import bacon.spam, spam".