Я меняю кучу старого кода на Python, который иногда запускается в коллизии имен между пакетами. У меня вопрос о том, когда следует использовать абсолютный импорт и будет ли он правильным импортировать модули только одного уровня по имени.
/package/
/package/__init__.py
/package/subA
/package/subA/__init__.py
/package/subA/moduleA.py
/package/subA/moduleB.py
/package/subB
/package/subB/__init__.py
/package/subB/moduleA.py
/package/subB/moduleB.py
Должен ли каждый оператор импорта в пакете выглядеть следующим образом:
import package.subX.moduleX
или
from package.subX import moduleX
Как насчет в файлах подпакета __init__.py
. Было бы неправильно просто поставить
import moduleA
import moduleB
Или, в /package/subA/moduleA.py, было бы неправильно просто поставить:
import moduleB