我正在尝试将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
是否存在问题。
答案 0 :(得分:0)
f2py链接到Python 3.4(因此fireball.cpython-34m.so
中的34),但是python3实际上是3.6版(请参阅您的最后评论)。
您的选择:
pip install --user -U numpy
应该可以。然后重建扩展名。