如何编译用于FORTRAN的Python脚本?

尽管我发现了很多有关这个问题的答案和讨论,但我无法找到一个解决方案来解决我的问题。 这里是:

我有一个用FORTRAN编写的主程序。 我得到了一套非常有用的python脚本。 我的目标是从我的主FORTRAN程序访问这些python脚本。 目前,我只是简单地从FORTRAN中调用脚本:

CALL SYSTEM('python pyexample.py')

数据从.dat文件读取并写入.dat文件。 这是Python脚本和主FORTRAN程序如何相互通信。

我目前正在我的本地机器上运行我的代码。 我有python与numpy,scipy等安装。

我的问题:代码需要在远程服务器上运行。 对于严格的FORTRAN代码,我在本地编译代码并将可执行文件发送到队列中等待的服务器。 但是,服务器没有安装python。 该服务器正被用作大学和工业之间的数字处理站。 在服务器上安装python以及必要的模块不是一种选择。 这意味着我的“CALL SYSTEM('python pyexample.py')”策略不再有效。

解决方案?:我在线程中发现了几件事情的信息将Python编译为机器代码是否可行?

Shedskin,Psyco,Cython,Pypy,Cpython API

这些“模块”(不知道这是怎么称呼他们)似乎编译python脚本到C代码或C ++。 显然,并不是所有的python特性都可以转换为C.另外,其中一些似乎是实验性的。 是否有可能用我的FORTRAN代码编译我的python脚本? 存在将FORTRAN代码转换为python的f2py,但它不会以其他方式工作。

任何帮助将不胜感激。 感谢您的时间。

文森特

PS:我在Ubuntu上使用python 2.6


无论如何,您需要在您的服务器上获取Python运行时,否则将无法执行Python字节码。 Ignacio正处于正确的轨道,并且直接建议调用libpython,但是由于Fortran的参数传递约定,编写C封装来处理Fortran和CPython嵌入API之间的接口将会容易得多。

不幸的是,你这样做很难 - 编写一个可以调用Fortran子程序的Python程序要比其他方式更容易。


你不想要那些。 你应该做的就是使用FORTRAN的FFI与libpython进行交谈,并且使用它的API。

链接地址: http://www.djcxy.com/p/45779.html

上一篇: How to compile Python scripts for use in FORTRAN?

下一篇: Using Visual Studio Intellisense for building jQuery selector strings