Python: проблема с локальными модулями, скрывающая глобальные модули

У меня есть пакет, настроенный так:

packagename/
    __init__.py
    numbers.py
    tools.py
    ...other stuff

Теперь внутри tools.py я пытаюсь импортировать стандартный библиотечный модуль fractions. Однако сам модуль fractions импортирует модуль numbers, который должен быть тем, который находится в стандартной библиотеке.

Проблема заключается в том, что он пытается импортировать модули numbers из моего пакета (т.е. my numbers.py затеняет модуль stdlib numbers), а затем жалуется на него вместо импорта модуля stdlib.

Мой вопрос в том, есть ли обходной путь, чтобы я мог сохранить текущую структуру моего пакета или это единственное решение для переименования моего собственного оскорбительного модуля (numbers.py)?

Ответ 2

Я стараюсь избегать затенения стандартной библиотеки. Как переименовать ваш модуль в "_numbers.py"?

И, конечно же, вы все равно можете:

import _numbers as numbers