我有庞大的Python模块(+8000行).它们通过读写硬件寄存器,通过串口与硬件平台交互,基本上有很多功能.
它们不是数值算法.因此,应用程序只是读/写硬件寄存器/内存.我使用这些库来编写自定义脚本.最后,我需要将所有这些东西移动到我的硬件上的嵌入式处理器中运行以获得更好的控制,然后我只是从PC启动事件,其余的是硬件.
所以我需要将它们转换为C.如果我可以通过自动工具将我的脚本转换为C,这将为我节省大量时间.这就是我被Cython吸引的原因.效率并不重要我的代码不是数字计算器.但生成的代码应该相对较小,以适应我有限的内存(几百千字节).
我可以使用Cython作为C的自定义Python脚本的转换器吗?我的猜测是肯定的,在这种情况下我可以使用这些.c文件在我的硬件中运行吗?我的猜测不是因为我必须在我的硬件中使用Cython以便它们运行.但是如果只是创建一些.c文件,我可以通过它独立完成,因为代码没有使用Python的许多功能,它只是将它用作快速实现脚本.
agf*_*agf 40
libpython.你可能觉得它没有使用那么多的Python功能,但我想如果你试试这个你会发现它不是真的 - 你仍然无法将你的程序与依赖它的程序分开,libpython同时仍然使用Python语言.另一种选择是PyPy,特别是它的翻译工具链,而不是 PyPy Python解释器.它允许您将RPython(Python语言的一个子集)转换为C.如果您确实没有使用许多Python语言功能或库,这可能会起作用.
PyPy主要被称为替代Python实现,但它也是一组用于将动态语言编译为各种形式的工具.这就是允许将用Python编写的Python的PyPy实现编译为机器代码.
如果C++可用,Nuitka是一个Python到C++编译器,适用于常规Python,而不仅仅是RPython(这是使用了swingskin和PyPy).