Мы используем micro:bit с аксессуаром Bit:bot XL. У меня есть модуль (robot.py) с единственной функцией для Bit:bot (пока). В моем скрипте (my.py) я импортирую эту функцию. Но после прошивки micro:bit (uflash my.py) на светодиодной матрице появляется сообщение об ошибке: «Ошибка импорта: нет модуля с именем robot». Однако, если я просто использую стандартные функции Python (например, print()) в своем модуле и запускаю свой скрипт в терминале VSCode, он работает нормально. Включение моей функции непосредственно в мой скрипт также отлично работает. Почему я не могу перенести и свой скрипт, и свой модуль на micro:bit?
Обходной путь можно найти по адресу Flash-микробит, внедряющий файл класса .py. Обходной путь требует, чтобы вы сначала прошили micro:bit, а затем перенесли модули с помощью ufs. Это работает, но усложняет задачу для нашей целевой группы — слепых детей.
Мой модуль robot.py хранится в папке с именем bitbot. Путь к папке указан в sys.path. В пакете также есть пустой файл __init__.py
.
# my.py
from microbit import *
from robot import drive
drive(500, 3000)
# bitbot/robot.py
from microbit import *
def drive(speed, duration):
"""Makes the Bit:bot move forwards with a given speed for a number of milliseconds"""
pin8.write_digital(0) #Left motor direction
pin12.write_digital(0) #Right motor direction
pin16.write_analog(speed) #Left motor speed
pin14.write_analog(speed) #Right motor speed
sleep(duration)
Я пробовал разные способы импортировать модуль, но все они дают одну и ту же ошибку импорта: импорт битбота, импорт робота, импорт из битбота *, импорт из робота *, с диска импорта битбота, с диска импорта робота, с диска импорта битбота. .
Я использую:
- Питон 3.7
- VSCode 1.42.1
- Расширение VSCode Python https://marketplace.visualstudio.com/items?itemName=ms-python.python
- Расширение VSCode micro:bit https://marketplace.visualstudio.com/items?itemName=PhonicCanine.micro-bit
- 4tronix Bit:bot XL v. 1.0 (конфигурация выводов отличается от Bit:bot v. 1.3)