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,所以不能升级。 –