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