Using pip or easy_install

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

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

Alternatively, you can use easy_install (deprecated):

$ easy_install [--user] slepc4py

If you already have working PETSc and SLEPc installs, set environment variables SLEPC_DIR and PETSC_DIR (and perhaps PETSC_ARCH for non-prefix installs) to appropriate values and next use pip:

$ export SLEPC_DIR=/path/to/slepc
$ export PETSC_DIR=/path/to/petsc
$ export PETSC_ARCH=arch-linux2-c-opt
$ pip install [--user] petsc4py slepc4py

Using distutils


You need to have the following software properly installed in order to build SLEPc 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.
  • A matching version of SLEPc built with shared libraries.
  • NumPy package.
  • petsc4py package.
[1]Unless you have appropriately configured and built SLEPc and 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 SLEPc for Python package is available for download at the Python Package Index. You can use curl or wget to get a release tarball.

  • Using curl:

    $ curl -LO
  • Using wget:

    $ wget


After unpacking the release tarball:

$ tar -zxf slepc4py-X.Y.tar.gz
$ cd slepc4py-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 and SLEPc. You can set (using setenv, export or what applies to you shell or system) the environment variables SLEPC_DIR`, PETSC_DIR, and PETSC_ARCH indicating where you have built/installed SLEPc and PETSc:

$ export SLEPC_DIR=/usr/local/slepc
$ 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:

slepc_dir  = /usr/local/slepc
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 SLEPc for Python in your system for all users, just do:

$ python install

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

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

$ python install --user