我无法使用f2py将任何fortran代码成功编译到python模块中。我使用以下fotran文件运行http://docs.scipy.org/doc/numpy-dev/f2py/getting-started.html中概述的过程:
C FILE: FIB3.F
SUBROUTINE FIB(A,N)
C
C CALCULATE FIRST N FIBONACCI NUMBERS
C
INTEGER N
REAL*8 A(N)
Cf2py intent(in) n
Cf2py intent(out) a
Cf2py depend(n) a
DO I=1,N
IF (I.EQ.1) THEN
A(I) = 0.0D0
ELSEIF (I.EQ.2) THEN
A(I) = 1.0D0
ELSE
A(I) = A(I-1) + A(I-2)
ENDIF
ENDDO
END
C END FILE FIB3.F
然后我运行命令
f2py -c -m fib3 fib3.f
在同一目录中创建.so共享库文件。在我的python代码中,我可以将fib3作为模块导入,但是当我尝试打印文档时
print fib3.__doc__
结果是'无'。当我尝试
时fib3.fib(a)
我得到了
AttributeError: 'module' object has no attribute 'fib'
我不确定f2py编译过程有什么问题,任何人都有想法?
我的电脑正在运行python 2.7,numpy 1.11和gfortran 6.1