在 spyder 上从 Python 调用 Fortran,Windows 10,“AttributeError:模块'myflib'没有属性'function'”

Call Fortran from Python on spyder, windows 10, "AttributeError: module 'myflib' has no attribute 'function'"

提问人:Eva 提问时间:11/10/2023 最后编辑:Eva 更新时间:11/11/2023 访问量:50

问:

我目前正在尝试从 Python 脚本调用 Fortran 代码中包含的函数。 为此,我尝试了 https://www.matecdev.com/posts/fortran-in-python.html 上提供的示例。

我创建了“my_fortran_lib.f90”,其中包含定义为

!
! my_fortran_lib.f90:
!
function foo(a) result(b)
    implicit none
   
    real(kind=8), intent(in) :: a(:,:)
    complex(kind=8) :: b(size(a,1),size(a,2))
   
    b = exp((0,1)*a)
   
end function foo

然后我在命令提示符下执行了以下命令(我使用 Windows 10) 我有 2 个输出“myflib2.cp311-win_amd64.pyd”和“libmy_fortr.VGRWKJX2MMMS3CK3OCJQHKECLLH3CKTE.gfortran-win_amd64.dll“包含在文件夹”myflib2“(与我的其他库位于同一文件夹中)中f2py3 -c -m myflib2 my_fortran_lib.f90

但是,当我在 spyder 上运行我的代码时,

import myflib2
a = np.array([[1,2,3,4], [5,6,7,8]], order='F')
myflib2.foo(a)

我有以下结果: 结果

myflib2.foo(a)
Traceback (most recent call last):

  Cell In[10], line 1
    myflib2.foo(a)

AttributeError: module 'myflib2' has no attribute 'foo' 

它可以找到文件夹 myflib2,但无法运行应该在 Fortran 代码中的函数。

你知道我问题的根源吗?

提前致谢,

我试过使用

  • Fortran 的其他格式为 f90、f
  • 其他功能

但它不起作用

python windows fortran 属性错误 f2py

评论

0赞 Vladimir F Героям слава 11/10/2023
欢迎,我建议参观并阅读如何提问最小的可重复示例。将所有错误消息和类似的输出作为文本包含在问题本身中非常重要。请勿将图片用于此内容。错误消息的可搜索性非常重要。
0赞 Vladimir F Героям слава 11/11/2023
您的 Python 安装从何而来?
0赞 SyndRain 11/11/2023
将 dll 文件移动到 python 脚本的同一级别是否有效?
0赞 Eva 11/16/2023
它不起作用@SyndRain
0赞 Eva 11/16/2023
我使用 python 3.11.5,它是在 python.org/downloads 上下载的,这是它的路径 « C:\ Users\Eva\AppData\Local\Programs\ Python\ Python311\Scripts\ ”。@VladimirF Героямслава

答: 暂无答案