Сбой импорта Python из-за дублирования пути

#python #python-3.x

#python #python-3.x

Вопрос:

У меня есть следующие сценарии,

 backend/scripts/factories.py
backend/monitor/models.py
scripts/scripts/industry/industry.py
 

В industry.py У меня есть,

 from monitor.models import abc
from scripts.factories import xyz
 

Сбой с ошибкой,

 ModuleNotFoundError: No module named 'scripts.factories'
 

В то же время monitor.models работает. Это происходит из-за того, что один и тот же путь «скриптов» существует дважды? Если да, как я могу это решить? Пожалуйста, сообщите.

Комментарии:

1. Либо используйте относительный импорт ( from ....backend.scripts.factories import xyz в данном случае, предполагая, что backend и scripts совместно использовать родительский каталог), либо, возможно, попробуйте указать точный файл (возможно, относительно industry.py местоположения) с помощью importlib

2. @HpLam да, он уже есть.

3. Или вы можете попробовать импортировать полный путь from backend.scripts.factories import xyz

4. Я предполагаю, что вы не имеете права sys.path . Cd в каталог верхнего уровня и запустите python -m scripts.scripts.industry.industry . Это поместит каталог верхнего уровня в path.

5. он может видеть скрипты / скрипты как дублирующий путь, поэтому, возможно, измените имя пути