Using pip or easy_install

You can use pip to install petsc4py and its dependencies (mpi4py is optional but highly recommended):

$ pip install [--user] numpy mpi4py
$ pip install [--user] petsc petsc4py

Alternatively, you can use easy_install (deprecated):

$ easy_install petsc4py

If you already have a working PETSc installation, set environment variables PETSC_DIR and PETSC_ARCH to appropriate values and next use pip:

$ export PETSC_DIR=/path/to/petsc
$ export PETSC_ARCH=arch-linux2-c-opt
$ pip install petsc4py

Using distutils


You need to have the following software properly installed in order to build PETSc for Python:

  • Any MPI implementation [1] (e.g., MPICH or Open MPI), built with shared libraries.
  • A matching version of PETSc built with shared libraries.
  • NumPy package.
[1]Unless you have appropiatelly configured and built PETSc without MPI (configure option --with-mpi=0).
[2]You may need to use a parallelized version of the Python interpreter with some MPI-1 implementations (e.g. MPICH1).


The PETSc for Python package is available for download at the project website generously hosted by Bitbucket. You can use curl or wget to get a release tarball.

  • Using curl:

    $ curl -O
  • Using wget:

    $ wget


After unpacking the release tarball:

$ tar -zxf petsc4py-X.Y.tar.gz
$ cd petsc4py-X.Y

the distribution is ready for building.


Mac OS X users employing a Python distribution built with universal binaries may need to set the environment variables MACOSX_DEPLOYMENT_TARGET, SDKROOT, and ARCHFLAGS to appropriate values. As an example, assume your Mac is running Snow Leopard on a 64-bit Intel processor and you want to override the hard-wired cross-development SDK in Python configuration, your environment should be modified like this:

$ export SDKROOT=/
$ export ARCHFLAGS='-arch x86_64'

Some environment configuration is needed to inform the location of PETSc. You can set (using setenv, export or what applies to you shell or system) the environment variables PETSC_DIR, and PETSC_ARCH indicating where you have built/installed PETSc:

$ export PETSC_DIR=/usr/local/petsc
$ export PETSC_ARCH=arch-linux2-c-opt

Alternatively, you can edit the file setup.cfg and provide the required information below the [config] section:

petsc_dir  = /usr/local/petsc
petsc_arch = arch-linux2-c-opt

Finally, you can build the distribution by typing:

$ python build


After building, the distribution is ready for installation.

If you have root privileges (either by log-in as the root user of by using sudo) and you want to install PETSc for Python in your system for all users, just do:

$ python install

The previous steps will install the petsc4py package at standard location prefix/lib/pythonX.X/site-packages.

If you do not have root privileges or you want to install PETSc for Python for your private use, just do:

$ python install --user