Python 告诉f2py跳过一个函数
我正在使用f2py编译一个Fortran库,这样我就可以在python中导入它,这样我就可以轻松地创建单元测试。但是,模块中的一个函数使用可分配数组从文件中读取矩阵(在读取矩阵之前,不知道矩阵的大小)。不幸的是,f2py不支持可分配数组,因此编译失败 我可以告诉f2py在模块中使用注释只忽略有问题的函数吗 我知道可以跳过编译时指定的函数列表,但是我希望有一个解决方案可以在源文件中实现,比如Python 告诉f2py跳过一个函数,python,unit-testing,fortran,f2py,Python,Unit Testing,Fortran,F2py,我正在使用f2py编译一个Fortran库,这样我就可以在python中导入它,这样我就可以轻松地创建单元测试。但是,模块中的一个函数使用可分配数组从文件中读取矩阵(在读取矩阵之前,不知道矩阵的大小)。不幸的是,f2py不支持可分配数组,因此编译失败 我可以告诉f2py在模块中使用注释只忽略有问题的函数吗 我知道可以跳过编译时指定的函数列表,但是我希望有一个解决方案可以在源文件中实现,比如!f2py修改f2py如何处理参数的注释。在f2py文档中,它表示可以通过执行以下操作跳过函数: f2p
!f2py
修改f2py如何处理参数的注释。在f2py文档中,它表示可以通过执行以下操作跳过函数:
f2py -h <filename.pyf> <options> <fortran files> \
[[ only: <fortran functions> : ] \
[ skip: <fortran functions> : ]]... \
[<fortran files> ...]
f2py-h\
[[仅限::]\
[跳过::]\
[ ...]
其中
skip:“
可用于跳过您不想执行的任何函数。我看到了,但我希望有一个解决方案可以在源文件中实现,如!f2py
修改f2py如何处理参数的注释,这样我就不需要在编译模块时这样做。哦,我明白你的意思了,你可能想编辑你的问题来指定这一点。我会看得更多,并给出结果。这个答案可能是最好的选择。随着我的深入思考,在Fortran文件中指定应该跳过函数而不是在Makefile中(我在Makefile中调用f2py
)可以获得很多好处。要执行部分包装,可以使用.pyf
文件。过程如下:使用-m module\u name-h module\u file.f90
生成默认的.pyf
文件。编辑.pyf
文件以仅保留要向Python公开的内容。使用f2py-c
编译Fortran代码和接口。通过同时列出.pyf
和.f90
文件,流程应该正确地使用包装器。我在一个小样本上测试成功。让我知道它是否有效,这样我就可以发布一个正确的答案。