首页 > 解决方案 > 如何完全抑制 f2py 的输出?

问题描述

我正在使用 f2py 在 python 和 fortran 代码之间进行接口。我正在使用 fortran 代码生成用于训练神经网络的数据,因此最终我可能不得不运行代码和 f2py 多达 1000 万次。每次我使用 f2py 时,它都会产生大约 15-20 行的输出,最终导致标准输出文件膨胀,并且可能会减慢速度。

我尝试使用官方文档中提到的“--quiet”标志,并尝试将输出重新定向到文件或 /dev/null,这减少了输出量但并没有完全消除它。

有没有办法完全抑制输出?

我正在使用 anaconda3/2019.10 和英特尔编译器套件版本 19.0。

我使用的基本 bash shell 命令是:

python -W ignore -m numpy.f2py -c -m python_rk4 --fcompiler=intel --f90flags='-g -w' --opt='-O0' --include-paths /path/to/my/data --quiet py_rk4_in.f90  2>&1 >/dev/null

典型输出如下所示(此警告出现 4 次):

In file included from /software/spackages/linux-centos8-x86_64/gcc-8.3.1/anaconda3-2019.10-v5cuhr6keyz5ryxcwvv2jkzfj2gwrj4a/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h(12),
                 from /software/spackages/linux-centos8-x86_64/gcc-8.3.1/anaconda3-2019.10-v5cuhr6keyz5ryxcwvv2jkzfj2gwrj4a/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h(4),
                 from /local_scratch/pbs.131339.pbs02/tmphkx4m82n/src.linux-x86_64-3.7/fortranobject.h(13),
                 from /local_scratch/pbs.131339.pbs02/tmphkx4m82n/src.linux-x86_64-3.7/fortranobject.c(2):
/software/spackages/linux-centos8-x86_64/gcc-8.3.1/anaconda3-2019.10-v5cuhr6keyz5ryxcwvv2jkzfj2gwrj4a/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h(84): warning #2650: attributes ignored here
                      NPY_CHAR NPY_ATTR_DEPRECATE("Use NPY_STRING")

输出似乎是-W ignore标志应该采取的python警告,但这似乎不起作用。我对python很陌生,所以我不确定我是否做对了。这是我第一次发帖,如有不妥,请见谅。谢谢您的帮助!

标签: pythonnumpyf2py

解决方案


推荐阅读