f2py 由于 python 中的属性错误而失败

问题描述 投票:0回答:1

我正在尝试通过 f2py 在 Python 3.10 中使用 Fortran 95 函数。 我编译如下:

python -m numpy.f2py -c -m isprim f2p.f95

我的 F95 代码:

function isprima (p)
    integer, intent(in) :: p
    integer :: i
    logical :: isprima
    isprima = .true.
    if (p/=2) then
        testloop: do i=2,int(floor(sqrt(real(p))))
            if (modulo(p, i) == 0)  then
                isprima = .false.
                exit testloop
            end if
        end do testloop
    end if
end function isprima

我的Python代码:

import numpy as np
import isprim
print(isprim.isprima(5))

错误信息是:

发生异常:AttributeError 模块“isprim”没有 属性“isprima”文件 “C:\ Users \ josch \ Documents \ Programmierung \ Fortran95 ortran2python.py”, 第 3 行,在 print(isprim.isprima(5)) AttributeError: 模块“isprim”没有属性“isprima”

我不知道出了什么问题。

当我尝试自己解决这个问题时,我在网上找到了解决方案,例如将F95-Function命名为小写。显然,这不起作用。我找不到其他解决方案。

python fortran gfortran f2py
1个回答
0
投票

如果您尝试使用

进行构建
f2py -c f2p.f95 -m isprim

python -m numpy.f2py -c f2p.f95 -m isprim

在Linux上,它将生成一个.so文件。 python 程序运行时将获取该值。包含 numpy 并不是绝对必要的 - 它只会使执行时间更长一些,因为必须加载 numpy

import isprim
print(isprim.isprima(5))
print(isprim.isprima(6))

结果是

1
0
© www.soinside.com 2019 - 2024. All rights reserved.