【问题标题】:Why isn't serialport.py installed by default?为什么默认不安装serialport.py?
【发布时间】:2026-01-21 04:05:02
【问题描述】:

我在几台 PC(版本 12.04 和 14.04)中使用 Ubuntu,并且我注意到在扭曲 14.0 的默认源 tar 包中运行“sudo python3 setup3.py install”时没有安装 serialprotocol.py。 0.

我不得不手动将文件复制到我的计算机中。我还尝试安装默认的 ubuntu 包 python3-twisted-experimental,结果相同。所以我总是最终手动复制“serialprotocol.py”和“_posixserialport.py”。之后它们就可以正常工作了。

附带说明:_posixserialport.py 无法导入 BaseSerialPort,因为它说: 从串口导入 BaseSerialPort 但应该是: 从 twisted.internet.serialport 导入 BaseSerialPort

【问题讨论】:

    标签: ubuntu python-3.x twisted


    【解决方案1】:

    Twisted 尚未完全移植到 Python 3。只有部分移植。当您使用 Python 3 安装 Twisted 时,只会安装已移植的部分。未安装未移植的模块,因为它们预计不会工作。

    正如您所观察到的,此代码实际上不适用于 Python 3,因为它使用隐式相对导入 - 已从 Python 3 中删除的功能。

    【讨论】:

    • 您可以按照twistedmatrix.com/trac/wiki/Plan/Python3 中详述的步骤帮助我们执行 Python 3 计划。参与开发过程的用户越多,Twisted 的所有功能就越早可用。
    • 我明白了。但是在您更改该行后它确实可以正常工作。我实际上正在使用它。唯一剩下的“错误”是 LineReceiver 客户端有时会使用两行作为参数调用 lineReceived。这是一个任何人都可以轻松解决的错误。 (我没有阅读代码)。 @Glyph:谢谢你的链接,我去看看。
    • “更改后工作正常,但它有一些错误”听起来像“它没有移植”给我。 :P