有人在嵌入式项目中使用Python吗?

41 投票
17 回答
38151 浏览
提问于 2025-04-11 09:30

我公司正在使用Python进行一个相对简单的嵌入式项目。有没有其他人也在嵌入式平台上使用Python呢?总体来说,我们用得还不错,开发应用程序的速度很快,调试也很快。我喜欢这种语言的“简洁性”。

不过,我在日常工作中遇到的一个主要问题是,Python缺乏静态检查,这和普通的编译器不同,可能会导致运行时出现问题。例如,在打印语句中不小心把一个字符串和一个整数混在一起,就可能导致整个应用程序崩溃。

17 个回答

9

我个人曾参与过一些在BusRadio设备上运行的软件开发。这是一个基于Twisted和Python的嵌入式项目。这个设备使用的是一个嵌入式XScale处理器,运行的是一个基于Debian的系统,所以可能不完全符合某些“嵌入式”的定义,但它确实非常小:可以放进校车的仪表盘里。

在使用Python和大型库时遇到了一些有趣的问题——在一个非常慢的芯片上,解释器启动并加载Twisted的所有代码可能需要很长时间,有些地方需要特别的优化。不过,Python的动态特性在任何时候都没有造成问题。虽然这款软件并不完美,但至少在使用Twisted时,一个简单的编程错误不会导致“整个应用崩溃”。错误信息会被记录下来,处理会继续进行。

所以,如果你处在一个足够灵活的嵌入式环境中,以至于可以使用Python,那么开发起来和写“普通”程序(比如游戏、桌面应用、网页应用)没有什么不同。在这里你也不需要静态类型。

10

顺便提一下,可以看看这篇博客文章:“Python的类型推断”,里面有关于类型推断和静态类型的有趣讨论,还链接了一些Guido van Rossum的博客,讲述了如何给Python添加可选的静态类型。

我同意Bruce Eckel的观点,认为与其依赖强类型,不如多练习“强测试”。我觉得这个观点同样适用于嵌入式开发。

16

我们在很多使用ARM处理器的嵌入式板子上用Python,内存是16MB(运行Linux)。

Python运行得非常好,而且很容易快速编写自定义代码,这是Python的一大优势。

关于代码的可靠性,我们努力做到100%的测试覆盖率。用Python写测试非常快,这让人感觉很有信心。我们使用twisted trial来运行测试并报告覆盖情况,但还有很多其他工具可以选择。

根据我的经验,Python加上测试比其他任何选择都更可靠,写起来也更快。

嵌入式工作的唯一缺点是,有时候Python可能会比较慢,有时候内存使用也会比较多(相对而言)。不过到目前为止,这还没有给我们造成致命的问题,如果出现问题,Python在速度和内存方面的分析也很简单。

pychecker是一个非常有用的工具,可以帮助发现很多常见错误。

撰写回答