Если импортировать модуль с именем, совпадающим с уже существующим (системным или пользовательским), новый модуль перекроет старый в текущей области видимости.  Python будет искать модуль в определенном порядке (sys.path). Если найдет первым модуль с совпадающим именем, он его и импортирует.  Это может привести к непредсказуемому поведению, если ожидается использование оригинального модуля.  Важно избегать конфликтов имен.
Когда вы импортируете модуль в Python, происходит следующее:
sys.path). Этот путь включает в себя текущую директорию, директории, указанные в переменной окружения PYTHONPATH, и директории, специфичные для установки Python.sys.modules. Это означает, что последующие попытки импорта модуля с тем же именем не будут повторно загружать его с диска; вместо этого будет использована кэшированная версия.Что произойдет, если импортировать модуль с тем же именем, что и уже существующий в системе?
    Если вы создадите модуль с тем же именем, что и стандартный модуль Python (например, math.py) и поместите его в текущую директорию (или другую директорию, которая стоит первой в sys.path), ваш модуль будет загружен вместо стандартного. Это может привести к неожиданному поведению и ошибкам, так как ваш модуль, вероятно, не будет иметь тех же функций и атрибутов, что и стандартный модуль.
  
Важные последствия:
import math, будет использовать ваш math.py.AttributeError (или другие ошибки, связанные с отсутствием ожидаемого функционала).Рекомендации:
venv, conda) позволяют изолировать зависимости вашего проекта, предотвращая конфликты между разными проектами, использующими модули с одинаковыми именами.sys.path:  Если вы подозреваете конфликт имен, проверьте sys.path, чтобы убедиться, что Python загружает модуль из правильного места.Таким образом, импорт модуля с конфликтующим именем перезапишет стандартный модуль для данной сессии. Это следует избегать, т.к. может приводить к неожиданному поведению и проблемам с отладкой.