2012-06-22 24 views
1

我無法讓我的setup.py腳本在鏈接到FORTRAN庫時正常工作。如何通過numpy distutils鏈接到FORTRAN庫

我幾乎沒有使用庫的經驗,所以我可能會使用不正確的術語。我有一個使用FMLIB fortran軟件包的fortran模塊。 FMLIB軟件包包含三個已編譯爲.o文件的f95文件。這個模塊反過來被一個python模塊使用。在setup.py文件,我使用的擴展:

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的文檔相對較少。

回答

2

想通了。

只需要添加include_dirs = ['<DIRECTORY WITH .MOD FILES>']library_dirs = [<DIRECTORY>],然後將庫關鍵字更改爲僅包含沒有路徑的文件名。

似乎工作。