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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:13:22