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