numpy.distutils
numpy.distutils 是numpy扩展标准python的一部分 distutils 要处理fortran源和f2py签名文件,例如编译fortran源、调用f2py来构造扩展模块等。
distutils
Example
考虑以下内容 setup file:
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 = "pearu@cens.ioc.ee", ext_modules = [ext1, ext2] ) # End of setup_example.py
运行
python setup_example.py build
将构建两个扩展模块 scalar 和 fib2 到生成目录。
scalar
fib2
numpy.distutils 延伸 distutils 具有以下特点:
Extension 类论证 sources 可能包含Fortran源文件。此外,清单 sources 最多可以包含一个f2py签名文件,然后扩展模块的名称必须与 <modulename> 在签名文件中使用。假设一个f2py签名文件正好包含一个 python module 块。
Extension
sources
<modulename>
python module
如果 sources 不包含签名文件,则f2py用于扫描Fortran源文件中的例程签名,以构造Fortran代码的包装器。
f2py流程的其他选项可以使用 Extension 类论证 f2py_options .
f2py_options
以下是新的 distutils 命令定义:
build_src
构造Fortran包装扩展模块。
config_fc
更改Fortran编译器选项
以及 build_ext 和 build_clib 增强了命令以支持Fortran源。
build_ext
build_clib
跑
python <setup.py file> config_fc build_src build_ext --help
查看这些命令的可用选项。
当构建包含Fortran源的python包时,可以使用 build_ext 命令选项 --fcompiler=<Vendor> . 在这里 <Vendor> 可以是以下名称之一:
--fcompiler=<Vendor>
<Vendor>
absoft sun mips intel intelv intele intelev nag compaq compaqv gnu vast pg hpux
见 numpy_distutils/fcompiler.py 获取支持的编译器或运行的最新列表
numpy_distutils/fcompiler.py
f2py -c --help-fcompiler