Pycharm «Оптимизировать импорт» вызывает ошибку в проекте - PullRequest
1 голос
/ 15 января 2020

Моя упрощенная структура папок:

/lights
/lights/__init__.py
/lights/light.py
/lights/directional_light.py
main.py

У меня есть пакет python с именем lights, в \__init__.py, я импортирую классы так:

from .light import Light
from .directional_light import DirectionalLight
from .spot_light import SpotLight

, так что я могу сделать из источников света импорт * в main.py

DirectionalLight наследуется от Light, поэтому я импортирую Light там тоже так:

from lights import Light

Все работает.

НО Когда я использую «оптимизировать импорт» Pycharm, он меняется на

from .directional_light import DirectionalLight
from .light import Light
from .spot_light import SpotLight

И я получаю сообщение об ошибке:
ImportError: cannot import name 'Light' from 'lights'

Потому что сначала он идет в directional_light.py и пытается импортировать из light import Light, который еще не импортирован в \__init__.py.

Интересно, почему Pycharm меняет порядок и разбивает материал. Это просто порядок по алфавиту?

Это заставляет меня сомневаться в импорте, который я делаю. Любые комментарии и предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...