python中的fortran子例程导入失败

时间:2019-05-31 09:45:25

标签: python linux fortran python-import f2py

我正在尝试将fortran子例程导入python代码。遵循本指南https://notmatthancock.github.io/2017/02/10/calling-fortran-from-python.html,我将以下行添加到了我的fortran代码中:

!f2py intent(in) :: ear,ne,parames,ifl
!f2py intent(out) photar,photer

但是,当我尝试使用f2py -c fireball_ES_param.f -m fireball创建fireball.so导入我的python代码时,会收到数百条警告,这可能是问题所在,但我不确定:https://www.4shared.com/s/f2ynHZ_Wjda(这是时间太长,无法在此处发布)。

无论如何,都会创建fireball.cpython-34m.so文件,但是当我尝试从python导入文件时,会得到:

$ python

Python 2.7.6 (default, Nov 13 2018, 12:45:42)  [GCC 4.8.4] on
linux2 Type "help", "copyright", "credits" or "license" for more
information.
>>> import fireball Traceback (most recent call last):
File "<stdin>", line 1, in <module> ImportError:
  No module named fireball

我尝试过:

import sys

sys.path.append('/path/to/folder/containing/fireball.cpython-34m.so')

,但结果相同。我不确定fireball.so的创建或其import是否存在问题。

1 个答案:

答案 0 :(得分:0)

f2py链接到Python 3.4(因此fireball.cpython-34m.so中的34),但是python3实际上是3.6版(请参阅您的最后评论)。

您的选择:

  • 使用Python 3.4启动程序,该程序应以python3.4的形式提供
  • 将f2py更新为Python 3.6。如果通过pip安装,则pip install --user -U numpy应该可以。然后重建扩展名。