xref: /petsc/src/binding/petsc4py/docs/source/install.rst (revision 15229ffc342989b2bf0590a733d92c152a3348fc)
15808f684SSatish BalayInstallation
25808f684SSatish Balay============
3eaf87d4bSBarry Smith.. _petsc4py_install:
45808f684SSatish Balay
5eaf87d4bSBarry Smith
655a74a43SLisandro DalcinInstall from PyPI using **pip**
755a74a43SLisandro Dalcin-------------------------------
85808f684SSatish Balay
95808f684SSatish BalayYou can use :program:`pip` to install :mod:`petsc4py` and its
105808f684SSatish Balaydependencies (:mod:`mpi4py` is optional but highly recommended)::
115808f684SSatish Balay
1255a74a43SLisandro Dalcin  $ python -m pip install mpi4py petsc petsc4py
135808f684SSatish Balay
1455a74a43SLisandro DalcinInstall from the PETSc source tree
1555a74a43SLisandro Dalcin----------------------------------
165808f684SSatish Balay
1755a74a43SLisandro DalcinFirst `build PETSc <petsc:doc_install>`. Next :file:`cd` to the top of the
1855a74a43SLisandro DalcinPETSc source tree and set the `PETSC_DIR <petsc:doc_multi>` and `PETSC_ARCH
1955a74a43SLisandro Dalcin<petsc:doc_multi>` environment variables. Run::
20e079f792SAlexei Colin
2155a74a43SLisandro Dalcin  $ python -m pip install src/binding/petsc4py
22e079f792SAlexei Colin
23cabd1581SStefano ZampiniThe installation of :mod:`petsc4py` supports multiple `PETSC_ARCH
24*15229ffcSPierre Jolivet<petsc:doc_multi>` in the form of colon separated list::
25cabd1581SStefano Zampini
26cabd1581SStefano Zampini  $ PETSC_ARCH='arch-0:...:arch-N' python -m pip install src/binding/petsc4py
27cabd1581SStefano Zampini
2855a74a43SLisandro DalcinIf you are cross-compiling, and the :mod:`numpy` module cannot be loaded on
2955a74a43SLisandro Dalcinyour build host, then before invoking :file:`pip`, set the
3055a74a43SLisandro Dalcin:envvar:`NUMPY_INCLUDE` environment variable to the path that would be returned
3155a74a43SLisandro Dalcinby :samp:`import numpy; numpy.get_include()`::
320f51ee0fSAlexei Colin
330f51ee0fSAlexei Colin  $ export NUMPY_INCLUDE=/usr/lib/pythonX/site-packages/numpy/core/include
340f51ee0fSAlexei Colin
3555a74a43SLisandro DalcinBuilding the documentation
3655a74a43SLisandro Dalcin--------------------------
37e079f792SAlexei Colin
3855a74a43SLisandro DalcinInstall the documentation dependencies using the ``[doc]`` extra::
395808f684SSatish Balay
4055a74a43SLisandro Dalcin  $ python -m pip install "src/binding/petsc4py[doc]"
415808f684SSatish Balay
4255a74a43SLisandro DalcinThen::
43e8c4a563SAlexei Colin
4455a74a43SLisandro Dalcin  $ cd src/binding/petsc4py/docs/source
4555a74a43SLisandro Dalcin  $ make html
46046f22aeSAlexei Colin
4755a74a43SLisandro DalcinThe resulting HTML files will be in :file:`_build/html`.
48046f22aeSAlexei Colin
4955a74a43SLisandro Dalcin.. note::
500f51ee0fSAlexei Colin
5155a74a43SLisandro Dalcin  Building the documentation requires Python 3.11 or later.
5255a74a43SLisandro Dalcin
5355a74a43SLisandro Dalcin.. note::
5455a74a43SLisandro Dalcin
5555a74a43SLisandro Dalcin  All new code must include documentation in accordance with the `documentation
5655a74a43SLisandro Dalcin  standard <documentation_standards>`
57