通过 numpy.distutils 使用#

遗留

此子模块被视为遗留模块,将不再接收更新。这可能也意味着它将在未来的 NumPy 版本中被移除。distutils 已被移除,取而代之的是 meson,详情请参阅 numpy.distutils 的状态和迁移建议

numpy.distutils 是 NumPy 的一部分,它扩展了标准的 Python distutils 模块,以处理 Fortran 源代码和 F2PY 签名文件,例如编译 Fortran 源代码、调用 F2PY 构建扩展模块等。

distutils 的扩展#

numpy.distutils 通过以下功能扩展了 distutils

  • Extension 类的参数 sources 可以包含 Fortran 源文件。此外,sources 列表最多只能包含一个 F2PY 签名文件,在这种情况下,扩展模块的名称必须与签名文件中使用的 <modulename> 匹配。假定 F2PY 签名文件恰好包含一个 python module 块。

    如果 sources 不包含签名文件,则使用 F2PY 扫描 Fortran 源文件以构建 Fortran 代码的包装器。

    可以使用 Extension 类参数 f2py_options 提供 F2PY 可执行文件的附加选项。

  • 定义了以下新的 distutils 命令

    build_src

    用于构建 Fortran 包装器扩展模块等。

    config_fc

    用于更改 Fortran 编译器选项。

    此外,build_extbuild_clib 命令也得到了增强,以支持 Fortran 源代码。

    运行

    python <setup.py file> config_fc build_src build_ext --help
    

    以查看这些命令的可用选项。

  • 当构建包含 Fortran 源代码的 Python 包时,可以使用 build_ext 命令选项 --fcompiler=<Vendor> 来选择不同的 Fortran 编译器。此处 <Vendor> 可以是以下名称之一(在 linux 系统上)

    absoft compaq fujitsu g95 gnu gnu95 intel intele intelem lahey nag nagfor nv pathf95 pg vast
    

    请参阅 numpy_distutils/fcompiler.py 以获取不同平台支持的编译器的最新列表,或者运行

    python -m numpy.f2py -c --backend distutils --help-fcompiler