【发布时间】:2011-02-17 19:32:32
【问题描述】:
虽然我找到了很多关于这个问题的答案和讨论,但我无法找到适合我情况的解决方案。这里是:
我有一个用 FORTRAN 编写的主程序。 我得到了一组非常有用的 python 脚本。 我的目标是从我的主 FORTRAN 程序中访问这些 python 脚本。目前,我只是这样调用 FORTRAN 中的脚本:
调用系统('python pyexample.py')
从 .dat 文件中读取数据并写入 .dat 文件。这就是 python 脚本和 FORTRAN 主程序相互通信的方式。
我目前正在本地机器上运行我的代码。我安装了带有 numpy、scipy 等的 python。
我的问题: 代码需要在远程服务器上运行。对于严格的 FORTRAN 代码,我在本地编译代码并将可执行文件发送到它在队列中等待的服务器。但是,服务器没有安装 python。该服务器被用作大学和行业之间的数字处理站。在服务器上安装 python 以及必要的模块不是一种选择。这意味着我的“CALL SYSTEM ('python pyexample.py')”策略不再有效。
解决方案?: 我在线程Is it feasible to compile Python to machine code?中找到了一些关于几件事的信息
Shedskin、Psyco、Cython、Pypy、Cpython API
这些“模块”(?不确定是不是这样称呼它们)似乎将 python 脚本编译为 C 代码或 C++。显然,并非所有 python 功能都可以翻译成 C。此外,其中一些似乎是实验性的。是否可以用我的 FORTRAN 代码编译我的 python 脚本?存在将 FORTRAN 代码转换为 python 的 f2py,但反过来就不行了。
任何帮助将不胜感激。感谢您的宝贵时间。
文森特
PS:我在 Ubuntu 上使用 python 2.6
【问题讨论】:
-
我无法回答您的主要问题,但会指出 f2py 不会将 Fortran 转换为 Python,而是生成从 Fortran 到 Python 的接口,以便 Python 可以调用 Fortran。
标签: python fortran compilation