F2PY用户指南和参考手册 > 使用via numpy.distutils
numpy.distutils
是NumPy的一部分,扩展了标准Python distutils
以处理Fortran源和F2PY签名文件,例如,编译Fortran源,调用F2PY以构建扩展模块等。
例
考虑以下安装文件:
from __future__ import division, absolute_import, print_function
from numpy.distutils.core import Extension
ext1 = Extension(name = 'scalar',
sources = ['scalar.f'])
ext2 = Extension(name = 'fib2',
sources = ['fib2.pyf', 'fib1.f'])
if __name__ == "__main__":
from numpy.distutils.core import setup
setup(name = 'f2py_example',
description = "F2PY Users Guide examples",
author = "Pearu Peterson",
author_email = "[email protected]",
ext_modules = [ext1, ext2]
)
# End of setup_example.py
跑步
python setup_example.py build
将构建两个扩展模块scalar
并fib2
进入构建目录。
numpy.distutils
扩展distutils
了以下功能:
Extension
类参数sources
可能包含Fortran源文件。此外,该列表sources
最多可以包含一个F2PY签名文件,然后扩展模块的名称必须与<modulename>
签名文件中使用的名称匹配。假定F2PY签名文件恰好包含一个块。python
module
如果sources
不包含签名文件,则使用F2PY扫描Fortran源文件以获取常规签名,以将包装器构造为Fortran代码。
F2PY进程的其他选项可以使用Extension
class参数指定f2py_options
。
distutils
定义了以下新命令:
build_src
构造Fortran包装器扩展模块等。
config_fc
更改Fortran编译器选项
以及build_ext
和 build_clib
命令已得到增强,以支持Fortran源。
跑
python <setup.py file> config_fc build_src build_ext --help
查看这些命令的可用选项。
构建包含Fortran源代码的Python软件包时,可以使用build_ext
command option 选择不同的Fortran编译器--fcompiler=<Vendor>
。这<Vendor>
可以是以下名称之一:
absoft sun mips intel intelv intele intelev nag compaq compaqv gnu vast pg hpux
请参阅numpy_distutils/fcompiler.py
以获取受支持的编译器的最新列表或运行
f2py -c --help-fcompiler