如何通过numpy distutils链接到FORTRAN库

时间:2012-06-22 06:26:43

标签: python numpy fortran f2py

在链接到FORTRAN库时,我无法使setup.py脚本正常工作。

我几乎没有图书馆的经验,所以我可能会使用不正确的术语。我有一个使用FMLIB fortran包的fortran模块。 FMLIB包中包含三个已编译为.o文件的f95文件。该模块又由python模块使用。在setup.py文件中,我使用Extension:

shapelets = Extension('PyCosmology.shapelets.fort.shapelets', 
                     ['PyCosmology/shapelets/fort/find_coeffs.f90'],
                       libraries = [<DIRECTORY>./FM.o'
                       '<DIRECTORY>/FMSAVE.f95',
                       '<DIRECTORY>/FMZM90.f95'],
                       extra_f90_compile_args=['-Wtabs'],
                       f2py_options=['--quiet'])

但是,当我尝试安装它时说它无法使用FMZM,因为找不到.mod文件。我应该在Extension中使用不同的关键字链接到库,还是链接到mod文件?或者我还应该做些什么呢? distutils的文档相对稀少。

1 个答案:

答案 0 :(得分:2)

想出来。

只需添加include_dirs = ['<DIRECTORY WITH .MOD FILES>']library_dirs = [<DIRECTORY>],然后将libraries关键字更改为仅包含没有路径的文件名。

似乎工作。