在distutils中使用F2py

2024-06-01 08:50:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python脚本中使用fortran程序,并尝试用setup.py脚本来构建和安装它,使用numpy.distutils。然而,我并不擅长于知道如何在各种代码文件中链接,所以我想我应该在这里提出这个问题,并希望有人能够清楚地解释如何处理每种类型的文件。在

让我来解释一个假设的情况,它恰好与我自己的情况非常相似。我有两个文件,每个文件都包含一个模块,我希望它们成为可以在python中导入的.so文件。假设它们是read.f90(containg moduleread)和{}(包含模块analyse),这两个模块都使用在另一个文件subs.f90中定义的子例程,我正在不断地添加和更新这些子例程。模块analyse还依赖于文件produce.f90中的另一个模块produce,我可能会先对其进行优化,但基本上我会让它在这之后发生。此外,analyse还依赖于外部库libfoo.a。在

有两个层来实现这一点-首先,use和{}语句在f90文件中必须是正确的。其次,setup.py文件中的扩展配置必须正确。到目前为止,我知道如何让外部库工作—在模块analyse,放入use foo,然后设置.py,在扩展函数中,使用关键字

library_dirs = ["path/to/library"],
libraries = ["foo"],
include_dirs = ["path/to/directory/with/mod/files"] 

不过,剩下的我不确定。我有一些工作,但似乎不是最佳的方式。其他部分根本不工作。我只是想知道是否有人能解释清楚该怎么做?在


Tags: 模块文件pathpy脚本foousesetup