问题描述
说明
python tty 模块出错。
如何在 yocto build 中启用这个模块?
环境
root@raspBerrypi3-64:~# uname -a
Linux raspBerrypi3-64 5.4.83-v8 #1 SMP PREEMPT Wed Jan 20 09:59:41 UTC 2021 aarch64 GNU/Linux
日志
root@raspBerrypi3-64:~# python3
Python 3.9.1 (default,Dec 7 2020,22:33:43)
[GCC 10.2.0] on linux
Type "help","copyright","credits" or "license" for more information.
>>> import tty
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
ModuleNotFoundError: No module named 'tty'
>>>
root@raspBerrypi3-64:~#
预期输出
tty 模块应该从 ubuntu 18.04 主机导入类似于以下日志
~$ python3
Python 3.6.9 (default,Oct 8 2020,12:12:24)
[GCC 8.4.0] on linux
Type "help","credits" or "license" for more information.
>>> import tty
>>>
~$
解决方法
python3
配方与其他配方略有不同,因此并不总是很容易找到它构建的包及其名称。
对于 Python 标准库,例如 tty
、logging
、2to3
、datetime
,必须阅读 python3-manifest.json
中使用的 python3
文件1}} 食谱,参见 http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-devtools/python/python3/python3-manifest.json?h=master
在那里,您可以看到 tty.py
是 terminal
字典的一部分。 “根”字典中的所有第一级键(包括terminal
)将是将要创建的包的后缀。在 terminal
的情况下,它将是 python3-terminal
。这意味着如果有人想要在他们的目标上使用 tty
模块,他们应该将 python3-terminal
添加到他们的图像配方中。
这种对 Python 标准库进行包拆分的特定逻辑是 Python 的结果,它的所有库对于嵌入式系统来说都非常大,通常可以手动定义和修复或更新所使用的库集。