xref: /petsc/src/binding/petsc4py/docs/source/install.rst (revision 55a74a43bb44613d95e937906bec3b8c3581b432)
15808f684SSatish BalayInstallation
25808f684SSatish Balay============
3eaf87d4bSBarry Smith.. _petsc4py_install:
45808f684SSatish Balay
5eaf87d4bSBarry Smith
6*55a74a43SLisandro DalcinInstall from PyPI using **pip**
7*55a74a43SLisandro 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
12*55a74a43SLisandro Dalcin  $ python -m pip install mpi4py petsc petsc4py
135808f684SSatish Balay
14*55a74a43SLisandro DalcinInstall from the PETSc source tree
15*55a74a43SLisandro Dalcin----------------------------------
165808f684SSatish Balay
17*55a74a43SLisandro DalcinFirst `build PETSc <petsc:doc_install>`. Next :file:`cd` to the top of the
18*55a74a43SLisandro DalcinPETSc source tree and set the `PETSC_DIR <petsc:doc_multi>` and `PETSC_ARCH
19*55a74a43SLisandro Dalcin<petsc:doc_multi>` environment variables. Run::
20e079f792SAlexei Colin
21*55a74a43SLisandro Dalcin  $ python -m pip install src/binding/petsc4py
22e079f792SAlexei Colin
23*55a74a43SLisandro DalcinIf you are cross-compiling, and the :mod:`numpy` module cannot be loaded on
24*55a74a43SLisandro Dalcinyour build host, then before invoking :file:`pip`, set the
25*55a74a43SLisandro Dalcin:envvar:`NUMPY_INCLUDE` environment variable to the path that would be returned
26*55a74a43SLisandro Dalcinby :samp:`import numpy; numpy.get_include()`::
270f51ee0fSAlexei Colin
280f51ee0fSAlexei Colin  $ export NUMPY_INCLUDE=/usr/lib/pythonX/site-packages/numpy/core/include
290f51ee0fSAlexei Colin
30*55a74a43SLisandro DalcinBuilding the documentation
31*55a74a43SLisandro Dalcin--------------------------
32e079f792SAlexei Colin
33*55a74a43SLisandro DalcinInstall the documentation dependencies using the ``[doc]`` extra::
345808f684SSatish Balay
35*55a74a43SLisandro Dalcin  $ python -m pip install "src/binding/petsc4py[doc]"
365808f684SSatish Balay
37*55a74a43SLisandro DalcinThen::
38e8c4a563SAlexei Colin
39*55a74a43SLisandro Dalcin  $ cd src/binding/petsc4py/docs/source
40*55a74a43SLisandro Dalcin  $ make html
41046f22aeSAlexei Colin
42*55a74a43SLisandro DalcinThe resulting HTML files will be in :file:`_build/html`.
43046f22aeSAlexei Colin
44*55a74a43SLisandro Dalcin.. note::
450f51ee0fSAlexei Colin
46*55a74a43SLisandro Dalcin  Building the documentation requires Python 3.11 or later.
47*55a74a43SLisandro Dalcin
48*55a74a43SLisandro Dalcin.. note::
49*55a74a43SLisandro Dalcin
50*55a74a43SLisandro Dalcin  All new code must include documentation in accordance with the `documentation
51*55a74a43SLisandro Dalcin  standard <documentation_standards>`