“安装串行”与“安装pyserial”headbut

问题描述 投票:0回答:1

问题

我收到了一个需要(除其他外)的Python脚本:

import serial
import serial.tools.list_ports

(我正在使用

pipenv
,但假设这与
pip
相同。)

当我安装

pyserial
时,运行脚本会重复出现错误:

get_com_port_frame: 'Serial' object has no attribute 'set_buffer_size'
(Re)starting frames com port: /dev/cu.usbmodem21401

当我安装

serial
时,我得到:

>>> import serial
>>> import serial.tools.list_ports
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'serial.tools'

环境:

使用 Python 3.12.3 在 M1 芯片上运行 macOS Sonoma 14.4

问题:

我错过了什么?有什么办法解决吗?

python-3.x pyserial
1个回答
0
投票

很难说你的问题是什么,无法访问

get_com_port_frame
的原始来源,以及开发和执行它的上下文,但基于导入,似乎你应该安装 pyserial ,它具有
 serial.tools.list_ports
您尝试导入的模块。 serial 包似乎不相关,只是碰巧共享相同的命名空间。

在源代码中,

set_buffer_size
函数似乎已经存在了9年,所以我怀疑你的问题是版本问题,除非你使用的是这个类的史前版本。

我的预感是你在这里没有使用预期的

Serial
类——导入的函数位于该类的 win32 版本中,在注释下有
- platform specific -
。它也不在
serial.Serial
类的文档中

是否您继承的脚本可以在 Windows 上运行,但您正在移植到其他平台,而某些假设不再成立?您确实在答案中提到在 Mac 上运行,所以这似乎是可能的。为了确认这一点,我会在出现属性错误时检查对象,看看它到底是什么类,因为

pyserial
的源代码有很多类名称
Serial

© www.soinside.com 2019 - 2024. All rights reserved.