pyFirmata 给出错误:模块“inspect”没有属性“getargspec”

2023-12-11

我正在尝试使用皮尔玛塔,但我无法让它工作。即使是最基本的库也不起作用。我猜库代码有问题。

from pyfirmata import Arduino,util
import time

port = 'COM5'
board = Arduino(port)

我收到此错误:

Traceback (most recent call last):
  File "c:\Users\Public\pythonpublic\arduino.py", line 5, in <module>
    board = Arduino(port)
            ^^^^^^^^^^^^^
  File "C:\Users\marce\AppData\Roaming\Python\Python311\site-packages\pyfirmata\__init__.py", line 19, in __init__      
    super(Arduino, self).__init__(*args, **kwargs)
  File "C:\Users\marce\AppData\Roaming\Python\Python311\site-packages\pyfirmata\pyfirmata.py", line 101, in __init__    
    self.setup_layout(layout)
  File "C:\Users\marce\AppData\Roaming\Python\Python311\site-packages\pyfirmata\pyfirmata.py", line 157, in setup_layout
    self._set_default_handlers()
  File "C:\Users\marce\AppData\Roaming\Python\Python311\site-packages\pyfirmata\pyfirmata.py", line 161, in _set_default_handlers
    self.add_cmd_handler(ANALOG_MESSAGE, self._handle_analog_message)
  File "C:\Users\marce\AppData\Roaming\Python\Python311\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 2.7、3.6 和 3.7 上运行。这并不意味着它不能在其他版本上运行,但可能是作者尚未在其他版本上进行测试并且不受官方支持。因此它可能适用于较新的 Python 版本,也可能不适用于。

您的错误消息是由于缺少功能引起的inspect.getargspec()。该函数是 Python 标准库的一部分,但自 Python 3.0(2008 年发布)以来已被弃用。不幸的是,作者没有意识到这一点,或者根本没有费心去修复它,所以现在代码不再适用于最新版本的 Python。

在Python文档中,您可以看到该函数仍然可用3.10版本,但不在3.11版本.

要解决这个问题,您有多种选择:

  • 降级到Python 3.10,目前仍然是一个不错的选择(Python 3.10“有效”到2026年10月4日)。我不知道所有其他功能是否都有效。我想会的,但你必须自己找出答案。
  • 降级到Python 3.7,据称支持。鉴于 Python 3.7 仍然存在(直到 2023 年 6 月 27 日),这也是一个合理的选择。
  • 为 pyFirmata 模块创建一个问题并希望作者能够解决该问题。注意2019 年有人已经创建了一个问题但显然没有效果。您可以在那里发表评论,确认这现在已经真正破裂。
  • 克隆库并自行修复(并创建拉取请求以将其放入官方库中)。
  • 找到另一个与 Python 3.11 兼容的类似库。
  • 自己写代码。

降级到 3.7 到 3.10 之间的 Python 版本无疑是最简单的选择,向作者留下一些反馈将使您有机会在将来修复该问题,以防您计划更长时间地使用脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pyFirmata 给出错误:模块“inspect”没有属性“getargspec” 的相关文章

随机推荐

  • 点击油猴按钮

    任何人都可以帮我使用greasemonkey 单击此按钮吗 http mibpaste com te6fRR 完整源码 var evt document createEvent HTMLEvents evt initEvent click
  • Automapper:使用自定义解析器返回的结构

    对于 AutoMapper 我使用 ValueResolver 返回这样的结构 struct MyStruct public int propA public int propB public int propC class MyResol
  • 当 UITableViewCell 被选中时,你能用动画来改变高度吗?

    我正在使用一个UITableView在我的 iPhone 应用程序中 我有一个属于某个组的人员列表 我希望当用户单击特定的人 从而选择单元格 时 单元格的高度会增加以显示几个用于编辑该人的属性的 UI 控件 这可能吗 我发现了一个非常简单的
  • Java 接口...动态内存还是静态内存?

    java接口驻留在内存中的哪里 它们驻留在堆或堆栈中 还是全局内存中 我认为它们在堆栈中 因为它们是在编译时创建的 我对么 类定义 包括接口和抽象类 保存在 PermGen 空间中 这意味着它们永远不会被垃圾回收 iirc 永久代是堆的一部
  • 添加导航栏后 TabLayout 不显示选项卡

    我正在使用 ViewPager TabLayout 它工作正常 但在我添加导航栏后 TabLayout 不显示选项卡 我寻找解决方案 但没有一个有帮助 如果有人告诉我为什么会发生这种情况 那将会非常有帮助 MainActivity java
  • 在 es5 中创建 Angular 2 服务

    我试图在 Angular 2 中创建自定义服务 但我似乎无法在 es5 中找到有关 Angular 2 服务的任何文档 这是我编写代码的内容 我尝试过使用这个 function app app database ng core Inject
  • 将 GTK python 脚本转换为 C

    以下脚本将在 Gnome 桌面上截取屏幕截图 import gtk gdk w gtk gdk get default root window sz w get size pb gtk gdk Pixbuf gtk gdk COLORSPA
  • Workday Soap API - 用户名/密码

    我正在尝试调用 Workday Integration API 我能够连接 但收到无效的用户名或密码消息 我的问题是 我将该信息放在哪里 我在 wsdl 中没有看到任何可以放置用户名或密码的内容 启动 集成 谢谢你的帮助 沃伦 由于某种原因
  • 使用 Python 和 Tkinter 制作一个简单的 GUI,我将无法识别的选择器发送到实例

    我正在尝试学习如何用Python 制作GUI 程序 我正在使用Python 2 7 6 以下是带有标签的简单窗口的代码 from Tkinter import root Tk label Label root text hello labe
  • 如何使用fgets逐行读取文件

    我是编程新手 所以有一些基础知识和常识我不知道 我有一个关于如何正确使用 fgets 的问题 根据 fgets 的解释 似乎 fgets 每当读取 n 1 个字符 遇到 EOF 或遇到换行符时就应该停止 例如 我创建一个如下所示的文本文件
  • 如何批量处理 PySpark DataFrame 中的项目

    我有一个 PySpark 数据框 对于每条 批次 记录 我想调用一个 API 所以基本上说我有 100000k 条记录 我想将项目批量分成 1000 条组并调用 API 我如何使用 PySpark 做到这一点 进行批处理的原因是 API 可
  • 有没有办法通过将引用计数存储在受控对象内来提高shared_ptr的效率?

    这正在成为我的代码中的常见模式 因为当我需要管理一个不可复制的对象时 因为 A 它是 重 或 B 它是操作系统资源 例如关键部分 class Resource class Implementation public boost noncop
  • 为什么只有一个空数组的数组长度为0?

    The Length属性在我测试的所有数组上都按预期工作 除了一种奇怪的情况 PS gt Length 0 但这并不是说空数组通常会被省略 PS gt Length 2 PS gt Length 3 这是怎么回事 the 数组子表达式运算符
  • 合并 django 查询集上的行

    我有一个带有属性位置 人员和错误的查询集 我需要创建一个新的查询集或编辑现有的查询集 以便根据特定条件 组合 行 该标准是位置和人物是否相同 合并后 如果要合并的任何行具有真值 我希望使错误值为真 在这种情况下 该表应更改如下 Locati
  • VBS将字符串转换为浮点数

    Dim strnumber strnumber 0 3 Dim add add 0 1 Dim result result strnumber add MsgBox result 我想要得到0 4结果 但得到3 1 我试过clng strn
  • JAX-RS异常:用资源的GET注释,类未被识别为有效的资源方法

    我正在将 JAX RS 的球衣实现用于 Web 服务 我对这个 JAX RS 很陌生 我正在尝试在服务中添加一个方法 该方法接受 Employee 对象并根据 Employee 对象值返回员工 ID 为此有一个数据库命中 遵循Restful
  • hg clone 相当于 hg (init→pull)

    在工作中我正在使用svn存储库由 7 个人共享 为了避免因提交而困扰我的错误并破坏每个人的构建 并避免分支svn 我创建了一个hg存储库的一部分svn我目前正在处理的目录 我在工作时在 hg 上执行本地提交 因为我在虚拟机上完成了所有设置
  • 如何根据联系人 ID 显示联系人的照片?

    这段代码 在我的定制适配器class 仅根据向我发送短信的人显示联系人 ID 并将其放入 ArrayList 然后显示列表 我有一个名为的 ImageViewholder photo每个联系人 ID 旁边 我将如何在 ImageView 中
  • 如何创建可变数量的 RichTextBox Overflow 元素

    我正在尝试以各种方式摆脱必须创建多个的循环RichTextBlockOverflow基于任意输入文本长度的控件但没有成功 这HasOverflowContent属性不会同步或异步更新 变量 bool ThereIsText 我无法理解何时以
  • pyFirmata 给出错误:模块“inspect”没有属性“getargspec”

    我正在尝试使用皮尔玛塔 但我无法让它工作 即使是最基本的库也不起作用 我猜库代码有问题 from pyfirmata import Arduino util import time port COM5 board Arduino port