And*_*aam 123 c python linker compilation
将Python(可能通过中间C表示)编译成机器代码是否可行?
据推测,它需要链接到Python运行时库,Python标准库的任何Python部分本身都需要编译(并链接).
此外,如果您想对表达式进行动态评估,则需要捆绑Python解释器,但也许不允许这样做的Python子集仍然有用.
它会提供任何速度和/或内存使用优势吗?据推测,Python解释器的启动时间将被消除(尽管共享库仍需要在启动时加载).
Tor*_*rek 53
正如@Greg Hewgill所说,有充分的理由说明为什么这并不总是可行的.但是,某些类型的代码(如非常算法代码)可以转换为"真正的"机器代码.
有几种选择:
之后,您可以使用现有的一个包(freeze,Py2exe,PyInstaller)将所有内容放入一个二进制文件中.
总而言之:你的问题没有一般答案.如果您的Python代码对性能至关重要,请尝试使用尽可能多的内置功能(或者询问"如何使我的Python代码更快"问题).如果这没有用,请尝试识别代码并将其移植到C(或Cython)并使用扩展名.
cle*_*leg 29
尝试使用ShedSkin Python-to-C++编译器,但它远非完美.还有Psyco - Python JIT,如果只需要加速.但恕我直言,这不值得努力.对于速度至关重要的代码部分,最佳解决方案是将它们编写为C/C++扩展.
一些额外的参考:
https://github.com/dropbox/pyston是Dropbox开发的Python的JIT编译器
http://pythran.readthedocs.io/是用于科学计算的C++转换器的编译时python
https://github.com/cosmo-ethz/hope是一个用于科学计算的C++翻译器的JIT python