0

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

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

完成这项工作有两层 - 首先,f90 文件中的useandinclude语句必须正确。其次,setup.py文件中的 Extension 配置必须正确。到目前为止,我知道如何让外部库工作 - 在模块analyse中 putuse foo和 setup.py 中的 Extension 函数中,使用关键字

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

但是,对于其余部分,我不确定。我有一些工作,但它似乎不是最佳方式。其他部分根本不工作。我只是想知道是否有人可以清楚地解释该怎么做?

4

0 回答 0