虽然我找到了很多关于这个问题的答案和讨论,但我无法找到特定于我的情况的解决方案.这里是:
我有一个用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
有没有办法在FORTRAN中使用python函数?我得到了一个包含一些函数的python脚本,我需要从FORTRAN代码访问这个函数.
我见过'f2py'允许从Python访问FORTRAN子程序,py2exe将python脚本编译成可执行文件.那'py2f'还有什么吗?可以将Python脚本编译为目标文件吗?然后我可以将它与FORTRAN代码链接起来.
例如,将'mypython_func.py'视为包含函数的Python脚本,将'mainfortran.f'视为调用Python函数的主程序FORTRAN代码.我想:从'mypython_func.py'编译到'mypython_func.o',从'mainfortran.f'编译到'mainfortran.o'(>> gfortran -c mainfortran.f),然后链接这些文件(>> gfortran -c mainfortran.o mypython_func.o -o myexec.exe).有可能这样吗?
感谢您的时间和帮助.
文斯