Ошибка ModuleNotFoundError: нет модуля с именем ‘x’ при импорте модулей

#python #python-3.x #modulenotfounderror

#python #python-3.x #ошибка modulenotfounderror

Вопрос:

в Python 3 я пытаюсь импортировать модуль (который импортирует другой модуль), и я получаю ModuleNotFoundError. Мой основной модуль выглядит следующим образом:

 from next_folder import adding
adding.add(1)
 

Затем в папке next folder у меня есть два других модуля. Первый из них adding.py :

 import substracting

def add(a):
    b = 1
    d = substracting.substract(20)
    c = a b d
    print(c)
 

Второй (в той же папке) substracting.py :

 def substract(c):
    d = c-1
    print(d)
    return d
 

Во время запуска main.py я получаю следующую ошибку:

   File "C:UsersLENOVOPycharmProjectspythonProjectmain.py", line 1, in <module>
    from next_folder import adding
  File "C:UsersLENOVOPycharmProjectspythonProjectnext_folderadding.py", line 1, in <module>
    import substracting
ModuleNotFoundError: No module named 'substracting'
 

Не могли бы вы помочь мне изменить этот код, чтобы main.py он действительно работал? Спасибо!

Ответ №1:

В этом случае вы можете использовать относительный импорт

 from . import substracting
 

В python 3 относительный импорт поддерживается только в форме from . импорт подмодуля

Это тоже сработало бы:

 import next_folder.substracting as sub

def add(a):
    b = 1
    d = sub.substract(20)
    c = a b d
    print(c)