Installation#

kikuchipy can be installed with pip, conda, the HyperSpy Bundle, or from source, and supports Python >= 3.10. All alternatives are available on Windows, macOS and Linux.

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]"

With Anaconda#

To install with Anaconda, we recommend you install it in a 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

With the HyperSpy Bundle#

kikuchipy is available in the HyperSpy Bundle. See HyperSpy Bundle for instructions.

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 Setting up a development installation and keeping it up to date.

Dependencies#

kikuchipy builds on the great work and effort of many people. This is a list of core package dependencies:

  • dask: Out-of-memory processing of data larger than RAM

  • diffpy.structure: Handling of crystal structures

  • diffsims: Handling of reciprocal lattice vectors and structure factors

  • hyperspy: Multi-dimensional data handling (EBSD class etc.)

  • h5py: Read/write of HDF5 files

  • imageio: Read image formats

  • lazy_loader: Lazy loading of functions, classes, and modules

  • matplotlib: Visualization

  • numba: CPU acceleration via just-in-time compilation

  • numpy: Handling of N-dimensional arrays

  • packaging: Version comparison

  • orix: Handling of rotations and vectors using crystal symmetry

  • pooch: Downloading and caching of datasets

  • pyyaml: Parcing of YAML files

  • scikit-image: Image processing like adaptive histogram equalization

  • rosettasciio: Read/write of some file formats

  • scikit-learn: Multivariate analysis

  • scipy: Optimization algorithms, filtering and more

  • tqdm: Progressbars

  • typing-extensions: Type hints only available from Python >= 3.11

Some functionality requires optional dependencies:

  • ipywidgets: Interactive widgets in Jupyter notebooks.

  • IPython: Interactive widgets in Jupyter notebooks.

  • psygnal: Trigger actions based on state changes.

  • pyebsdindex: Hough indexing. We recommend to install with optional GPU support via 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.

  • 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.