package documentation

Fortran to Python Interface Generator.
Module __main__ Undocumented
Module __version__ Undocumented
Module auxfuncs Auxiliary functions for f2py2e.
Module capi​_maps No summary
Module cb​_rules Build call-back mechanism for f2py2e.
Module cfuncs C declarations, CPP macros, and C functions for f2py2e. Only required declarations/macros/functions will be used.
Module common​_rules Build common block mechanism for f2py2e.
Module crackfortran crackfortran --- read fortran (77,90) code and extract declaration information.
Module diagnose Undocumented
Module f2py2e f2py2e - Fortran to Python C/API generator. 2nd Edition. See __usage__ below.
Module f2py​_testing Undocumented
Module f90mod​_rules Build F90 module support for f2py2e.
Module func2subr Rules for building C/API module with f2py2e.
Module rules Rules for building C/API module with f2py2e.
Module setup for installing F2PY
Module symbolic Fortran/C symbolic expressions
Package tests No package docstring; 3/24 modules documented
Module use​_rules Build 'use others module data' mechanism for f2py2e.


Function compile Build extension module from a Fortran 77 source string with f2py.
Function get​_include Return the directory that contains the fortranobject.c and .h files.
Function __dir__ Undocumented
Function __getattr__ Undocumented
def compile(source, modulename='untitled', extra_args='', verbose=True, source_fn=None, extension='.f', full_output=False):

Build extension module from a Fortran 77 source string with f2py.


source : str or bytes

Fortran source of module / subroutine to compile

Changed in version 1.16.0: Accept str as well as bytes
modulename : str, optional
The name of the compiled python module
extra_args : str or list, optional

Additional parameters passed to f2py

Changed in version 1.16.0: A list of args may also be provided.
verbose : bool, optional
Print f2py output to screen
source_fn : str, optional
Name of the file where the fortran source is written. The default is to use a temporary file with the extension provided by the extension parameter
extension : {'.f', '.f90'}, optional

Filename extension if source_fn is not provided. The extension tells which fortran standard is used. The default is .f, which implies F77 standard.

New in version 1.11.0.
full_output : bool, optional

If True, return a subprocess.CompletedProcess containing the stdout and stderr of the compile process, instead of just the status code.

New in version 1.20.0.


result : int or subprocess.CompletedProcess
0 on success, or a subprocess.CompletedProcess if full_output=True


def get_include():

Return the directory that contains the fortranobject.c and .h files.


This function is not needed when building an extension with numpy.distutils directly from .f and/or .pyf files in one go.

Python extension modules built with f2py-generated code need to use fortranobject.c as a source file, and include the fortranobject.h header. This function can be used to obtain the directory containing both of these files.


include_path : str
Absolute path to the directory containing fortranobject.c and fortranobject.h.


New in version 1.22.0.

Unless the build system you are using has specific support for f2py, building a Python extension using a .pyf signature file is a two-step process. For a module mymod:

  • Step 1: run python -m numpy.f2py mymod.pyf --quiet. This generates _mymodmodule.c and (if needed) _fblas-f2pywrappers.f files next to mymod.pyf.

  • Step 2: build your Python extension module. This requires the following source files:

    • _mymodmodule.c
    • _mymod-f2pywrappers.f (if it was generated in step 1)
    • fortranobject.c

See Also

numpy.get_include : function that returns the numpy include directory

def __getattr__(attr):


def __dir__():