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>`