You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含自定义模块的Python脚本部署到micro:bit?导入报错求助

解决micro:bit刷入时的"Import error: No module named robot"问题

我来帮你搞定这个问题!核心原因是micro:bit的嵌入式MicroPython环境和桌面Python的模块加载逻辑完全不一样:

  • 你在VSCode本地能正常运行,是因为桌面Python会读取sys.path里配置的bitbot文件夹,顺利找到robot.py模块;
  • 但用uflash刷入micro:bit时,它只会把你指定的my.py单独打包刷进设备,不会自动带上bitbot文件夹里的依赖模块,所以设备运行时根本找不到robot模块。

针对盲童用户的操作便利性,我优先推荐下面这个最简单、零额外操作的方案:

方案1:合并代码到单个文件(最适合目标用户)

把robot.py里的drive函数直接复制到my.py中,这样只需要刷入一个文件就能正常运行,完全不用处理复杂的多文件传输。修改后的my.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)

drive(500, 3000)

这样刷入后,micro:bit就能直接执行,不会再报导入错误,操作对盲童用户来说也最直观——只需要处理单个文件即可。

方案2:手动传输模块到micro:bit文件系统(操作复杂,仅作参考)

你提到的先刷脚本再用ufs传模块的方法,原理是把bitbot/robot.py上传到micro:bit的内部文件系统,但这个流程需要多步额外操作,对视力障碍用户不太友好。如果一定要用模块化方式,步骤大概是:

  • 先刷入仅含from microbit import *的基础脚本;
  • 用ufs工具把bitbot/robot.py上传到micro:bit的根目录;
  • 再刷入包含from robot import drive的完整my.py。
    但显然这个流程太繁琐,所以还是优先推荐方案1。

另外要注意:micro:bit的MicroPython不支持桌面Python那样的包结构(带__init__.py的文件夹),哪怕你把bitbot文件夹传进去,也没法用from bitbot.robot import drive这类方式导入,必须把模块文件放在设备根目录,或者直接合并到主文件里。

内容的提问来源于stack exchange,提问作者oivron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 19:22:52