Skip to main content
`Ctrl`+`K`

# Installation

## Install from PyPI using pip

You can use pip to install `petsc4py` and its dependencies:

    $ python -m pip install petsc petsc4py

## Install from the PETSc source tree

First `build PETSc`. Next `cd` to the top of the PETSc source tree and set the `PETSC_DIR` and `PETSC_ARCH` environment variables. Run:

    $ python -m pip install src/binding/petsc4py

The installation of `petsc4py` supports multiple `PETSC_ARCH` in the form of colon separated list:

    $ PETSC_ARCH='arch-0:...:arch-N' python -m pip install src/binding/petsc4py

If you are cross-compiling, and the `numpy` module cannot be loaded on your build host, then before invoking pip, set the `NUMPY_INCLUDE` environment variable to the path that would be returned by `import numpy; numpy.get_include()`:

    $ export NUMPY_INCLUDE=/usr/lib/pythonX/site-packages/numpy/core/include

## Running the testing suite

When installing from source, the petsc4py complete testsuite can be run as:

    $ cd src/binding/petsc4py
    $ python test/runtests.py

or via the makefile rule `test`:

    $ make test -C src/binding/petsc4py

Specific tests can be run using the command-line option `-k`, e.g.:

    $ python test/runtests.py -k test_optdb

to run all the tests provided in `tests/test_optdb.py`.

For other command-line options, run:

    $ python test/runtests.py --help

If not otherwise specified, all tests will be run in sequential mode. To run all the tests with the same number of MPI processes, for example `4`, run:

    $ mpiexec -n 4 python test/runtests.py

or:

    $ make test-4 -C src/binding/petsc4py

## Building the documentation

Install the documentation dependencies:

    $ python -m pip install -r src/binding/petsc4py/conf/requirements-docs.txt

Then:

    $ cd src/binding/petsc4py/docs/source
    $ make html

The resulting HTML files will be in `_build/html`.

Note

Building the documentation requires Python 3.11 or later.