CircuitPython树莓派Pico缺失numbers模块报错的解决咨询
问题描述
测试TFT显示屏时使用以下代码:
import board import displayio import terminalio from adafruit_ili9341 import ILI9341 # Initialize ILI9341 display spi = board.SPI() tft_cs = board.D9 tft_dc = board.D10 display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs, reset=board.D6) display = ILI9341(display_bus, width=320, height=240) # Create a display group group = displayio.Group(max_size=10) display.show(group) # Function to display text def display_text(text, x, y, color): text_area = label.Label(terminalio.FONT, text=text, color=color, x=x, y=y) group.append(text_area) # Clear the screen display.fill(0) display.show() # Display text display_text("Hello, CircuitPython!", 50, 100, 0xFFFF00) # Yellow color
运行后出现如下错误:
Traceback (most recent call last): File "<stdin>", line 4, in <module> File "/lib/adafruit_ili9341/__init__.py", line 21, in <module> File "/lib/adafruit_ili9341/ILI9341.py", line 21, in <module> ImportError: no module named 'numbers'
背景说明:numbers模块本应随CircuitPython固件预装,但因设备空间不足删除了lib文件夹,尝试在库管理器中查找该模块未果,重新刷入固件也未能解决问题。
修复步骤
匹配固件与库版本:
adafruit_ili9341库的版本需与CircuitPython固件版本严格对应。部分新版本库会依赖已从固件中移除的numbers模块,需下载与当前固件版本完全匹配的Adafruit CircuitPython Library Bundle,解压后仅提取adafruit_ili9341库及其必要依赖文件,避免版本不兼容问题。手动添加极简版
numbers模块:若对应版本的库 bundle 中无numbers模块,可自行创建一个numbers.py文件,内容如下,上传至设备的lib文件夹即可满足库的依赖需求:
class Number: pass class Integral(Number): pass class Real(Number): pass
该极简版本占用空间极小,足以适配多数第三方库的依赖调用。
彻底清理后重刷固件:重刷固件前,先格式化设备存储分区以清除旧文件残留,再刷入对应版本的完整CircuitPython固件,之后从匹配的library bundle中导入所需的
adafruit_ili9341库,不要删除固件自带的核心模块文件。改用轻量原生方案:若设备空间极度紧张,可直接使用
displayio原生功能实现文本绘制,无需依赖第三方驱动库,减少模块依赖占用。
内容的提问来源于stack exchange,提问作者supersonic5138 supersonic5138
相关产品推荐
相关产品推荐

