将Python(可能通过中间C表示)编译成机器代码是否可行?
据推测,它需要链接到Python运行时库,Python标准库的任何Python部分本身都需要编译(并链接).
此外,如果您想对表达式进行动态评估,则需要捆绑Python解释器,但也许不允许这样做的Python子集仍然有用.
它会提供任何速度和/或内存使用优势吗?据推测,Python解释器的启动时间将被消除(尽管共享库仍需要在启动时加载).
我正在考虑将python嵌入fortran90的选项,以便为我现有的fortran90代码添加python功能.我知道可以通过使用来自numpy的f2py使用fortran90扩展python来反过来做到这一点.但是,我想在fortran中保留我的超级优化主循环并添加python来执行一些额外的任务/评估进一步的开发,然后才能在fortran中完成它,并且还可以简化代码维护.我正在寻找以下问题的答案:
1)是否存在已经存在的库,我可以将python嵌入到fortran中?(我知道f2py并且它反过来了)2)我们如何处理从fortran到python并返回的数据传输?3)我们如何实现回调功能?(让我稍微描述一下场景....我在Fortran中有我的main_fortran程序,在python中调用Func1_Python模块.现在,从这个Func1_Python,我想调用另一个函数...在Fortran中说Func2_Fortran)4)什么在性能方面将python的解释器嵌入到fortran中的影响......就像加载时间,运行时间,发送数据(双精度的大数组)等.
非常感谢您的帮助!
Edit1:我想通过添加一些关于我正在做的工作的更多信息来设置正确的讨论方向.我是科学计算的东西.因此,我会在双精度和浮点运算中对大型数组/矩阵进行大量工作.因此,除了fortran之外,很少有其他选择可以为我做这项工作.我想将python包含到我的代码中的原因是我可以使用NumPy在必要时进行一些基本计算,并以最小的努力扩展代码的功能.例如,我可以使用几个库来链接python和其他一些包(比如使用PyFoam库的OpenFoam).