Баги

Странный ImportError, хотя файл есть

Иногда Pybricks Code может показать ошибку вида:

ImportError: no module named 'xAct_action'

При этом файл xAct_action.py действительно есть в проекте, и импорт написан правильно:

from xAct_action import Action

Само имя xAct_action.py ошибку не вызывает. Главное, чтобы имя файла и имя в import совпадали.

Частая причина

Проблему может вызвать случайная кириллица в коде, например русские буквы, которые попали в файл при случайном переключении раскладки:

from xAct_action import Action

лол

robot = Robot()

Для обычного Python строка лол выглядит как имя переменной. Но старые версии Pybricks Code могут сломаться еще раньше: редактор пытается найти все import, чтобы загрузить нужные .py файлы на хаб. Если анализатор кода спотыкается о кириллицу, он может не добавить импортируемый файл в запуск.

В итоге настоящая проблема находится в main.py, а сообщение выглядит так, будто пропал модуль.

Что проверить

  1. Удали случайные русские буквы или другие строки, которые не являются кодом или комментарием.
  2. Проверь, что имя файла точно совпадает с импортом:
from xAct_action import Action

значит рядом должен быть файл:

xAct_action.py

Как должно быть

from xAct_action import Action

robot = Robot()

Если после удаления случайной кириллицы ошибка изменилась на NameError, SyntaxError или другую нормальную ошибку Python, значит импорт уже нашелся, и можно чинить реальную проблему в коде.