============ Installation ============ kikuchipy can be installed with `pip `__, `conda `__, the :ref:`hyperspy:hyperspy-bundle`, or from source, and supports Python >= 3.10. All alternatives are available on Windows, macOS and Linux. .. _install-with-pip: With pip ======== kikuchipy is availabe from the Python Package Index (PyPI), and can therefore be installed with `pip `__. To install, run the following:: pip install kikuchipy To update kikuchipy to the latest release:: pip install --upgrade kikuchipy To install a specific version of kikuchipy (say version 0.8.5):: pip install kikuchipy==0.8.5 To install *with* optional dependencies:: pip install "kikuchipy[all]" .. _install-with-anaconda: With Anaconda ============= To install with Anaconda, we recommend you install it in a :doc:`conda environment ` with the `Miniconda distribution `__. To create an environment and activate it, run the following:: conda create --name kp-env python=3.12 conda activate kp-env If you prefer a graphical interface to manage packages and environments, you can install the `Anaconda distribution `__ instead. To install:: conda install kikuchipy --channel conda-forge To update kikuchipy to the latest release:: conda update kikuchipy To install a specific version of kikuchipy (say version 0.8.5):: conda install kikuchipy==0.8.5 To install *without* optional dependencies:: conda install kikuchipy-base .. _install-with-hyperspy-bundle: With the HyperSpy Bundle ======================== kikuchipy is available in the HyperSpy Bundle. See :ref:`hyperspy:hyperspy-bundle` for instructions. .. _install-from-source: From source =========== To install kikuchipy from source, clone the repository from `GitHub `__, and install with ``pip``:: git clone https://github.com/pyxem/kikuchipy.git cd kikuchipy pip install --editable . See the contributing guide for :ref:`setting-up-a-development-installation` and keeping it up to date. .. _dependencies: Dependencies ============ kikuchipy builds on the great work and effort of many people. This is a list of core package dependencies: * :doc:`dask `: Out-of-memory processing of data larger than RAM * :doc:`diffpy.structure `: Handling of crystal structures * :doc:`diffsims `: Handling of reciprocal lattice vectors and structure factors * :doc:`hyperspy `: Multi-dimensional data handling (EBSD class etc.) * :doc:`h5py `: Read/write of HDF5 files * :doc:`imageio `: Read image formats * `lazy_loader`_: Lazy loading of functions, classes, and modules * :doc:`matplotlib `: Visualization * :doc:`numba `: CPU acceleration via just-in-time compilation * :doc:`numpy `: Handling of N-dimensional arrays * :doc:`packaging `: Version comparison * :doc:`orix `: Handling of rotations and vectors using crystal symmetry * :doc:`pooch `: Downloading and caching of datasets * `pyyaml `__: Parcing of YAML files * :doc:`scikit-image `: Image processing like adaptive histogram equalization * :doc:`rosettasciio `: Read/write of some file formats * `scikit-learn `__: Multivariate analysis * :doc:`scipy `: Optimization algorithms, filtering and more * `tqdm `__: Progressbars * :doc:`typing-extensions `: Type hints only available from Python >= 3.11 .. _lazy_loader: https://scientific-python.org/specs/spec-0001/#lazy_loader Some functionality requires optional dependencies: * :doc:`ipywidgets `: Interactive widgets in Jupyter notebooks. * :doc:`IPython `: Interactive widgets in Jupyter notebooks. * :doc:`psygnal `: Trigger actions based on state changes. * :doc:`pyebsdindex `: Hough indexing. We recommend to install with optional GPU support via :doc:`pyopencl` with ``pip install "pyebsdindex[gpu]""`` or ``conda install pyebsdindex -c conda-forge``. * `nlopt `__: Extra optimization algorithms used in EBSD orientation and/or projection center refinement. Installation from conda ``conda install nlopt -c conda-forge`` is recommended. * :doc:`pyvista`: 3D plotting of master patterns. Note that installing with the optional dependencies, ``pip install "kikuchipy[all]"``, will not install ``pyopencl``, which is required for GPU support in ``pyebsdindex``. If the install command failed for some reason, you can try to install each optional dependency separately.