Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 告诉f2py跳过一个函数_Python_Unit Testing_Fortran_F2py - Fatal编程技术网

Python 告诉f2py跳过一个函数

Python 告诉f2py跳过一个函数,python,unit-testing,fortran,f2py,Python,Unit Testing,Fortran,F2py,我正在使用f2py编译一个Fortran库,这样我就可以在python中导入它,这样我就可以轻松地创建单元测试。但是,模块中的一个函数使用可分配数组从文件中读取矩阵(在读取矩阵之前,不知道矩阵的大小)。不幸的是,f2py不支持可分配数组,因此编译失败 我可以告诉f2py在模块中使用注释只忽略有问题的函数吗 我知道可以跳过编译时指定的函数列表,但是我希望有一个解决方案可以在源文件中实现,比如!f2py修改f2py如何处理参数的注释。在f2py文档中,它表示可以通过执行以下操作跳过函数: f2p

我正在使用f2py编译一个Fortran库,这样我就可以在python中导入它,这样我就可以轻松地创建单元测试。但是,模块中的一个函数使用可分配数组从文件中读取矩阵(在读取矩阵之前,不知道矩阵的大小)。不幸的是,f2py不支持可分配数组,因此编译失败

我可以告诉f2py在模块中使用注释只忽略有问题的函数吗

我知道可以跳过编译时指定的函数列表,但是我希望有一个解决方案可以在源文件中实现,比如
!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
文件,流程应该正确地使用包装器。我在一个小样本上测试成功。让我知道它是否有效,这样我就可以发布一个正确的答案。