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

创建ArduinoMega对象后pyFirmata抛出AttributeError错误求助

Arduino Mega与pyFirmata连接报错排查

问题背景

我正在启动一个Arduino项目,但每次运行代码都会报错,怀疑是配置环节出了问题。已经把Standard Firmata Sketch上传到Arduino Mega,也安装了pyFirmata,找不到哪里操作失误。另外在另一台电脑上尝试过,虽然没正常工作,但能完成板卡初始化,不会出现这类报错。

测试代码

import pyfirmata as pf

board = pf.ArduinoMega('COM5')

报错信息

Traceback (most recent call last):
  File "C:\Users\stiky\Desktop\Code\Python Codes\Arduino\test.py", line 3, in <module>
    board = pf.ArduinoMega('COM5')
            ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\stiky\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyfirmata\__init__.py", line 32, in __init__
    super(ArduinoMega, self).__init__(*args, **kwargs)
  File "C:\Users\stiky\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyfirmata\pyfirmata.py", line 101, in __init__
    self.setup_layout(layout)
  File "C:\Users\stiky\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyfirmata\pyfirmata.py", line 157, in setup_layout
    self._set_default_handlers()
  File "C:\Users\stiky\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyfirmata\pyfirmata.py", line 161, in _set_default_handlers
    self.add_cmd_handler(ANALOG_MESSAGE, self._handle_analog_message)
  File "C:\Users\stiky\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyfirmata\pyfirmata.py", line 185, in add_cmd_handler
    len_args = len(inspect.getargspec(func)[0])
                   ^^^^^^^^^^^^^^^^^^
AttributeError: module 'inspect' has no attribute 'getargspec'. Did you mean: 'getargs'?

解决方案

这个报错的核心原因是Python版本与pyFirmata版本不兼容:

  • 你使用的Python 3.11已经移除了inspect.getargspec()方法(该方法在Python 3.0起就被标记为废弃,3.11彻底移除)。
  • 你安装的pyFirmata版本较旧,仍在调用这个已被移除的API;另一台电脑能完成初始化,是因为它的Python版本低于3.11,getargspec方法尚未被完全移除。

具体修复步骤

  • 升级pyFirmata到兼容版本:打开命令提示符执行以下命令,新版库已替换为兼容的inspect.getfullargspec()方法:
    pip install --upgrade pyfirmata
    
  • 若升级后仍有问题,可降级Python版本至3.10或更低,确保与pyFirmata版本匹配。
  • 额外验证:确认Arduino Mega的COM端口正确(可在Arduino IDE的「工具」→「端口」中查看),重新上传Standard Firmata Sketch后再测试代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:55:18