f2py爲了建立使用python2 f2py擴展模塊,我一直在使用一個Makefile類似於:的Makefile中python3
default: fortran_lib.so
%.so:: %.f90
f2py -c -m $* $<
爲了完整起見,這裏也是一個虛擬fortran_lib.f90
文件
subroutine square(d)
implicit none
!f2py intent(inout) d
integer, intent(inout) :: d
d = d*d
end subroutine square
這用於正常工作,make
只會產生fortran_lib.so
。
現在我想要支持python3,但是當使用f2py3
時,make
會生成版本爲fortran_lib.cpython-35m-x86_64-linux-gnu.so
的代碼(在我的特殊設置上)。
由於這與指定的目標名稱不同,因此make
無法識別目標已經完成。因此,每次運行make
時都會重新制定目標。
如何解決此問題(無需硬編碼版本)?
- 我可以告訴f2py3關閉版本控制嗎?
- 我能以某種方式解決Makefile中的版本問題嗎?
- 或者我被迫切換到其他工具來構建擴展模塊(
distutils
,...)?
這正是我所期待的。由於代表<15,所以不能升級。 –