============
Installation
============
kikuchipy can be installed with `pip `__,
`conda `__, the
:ref:`hyperspy:hyperspy-bundle`, or from source, and supports Python >= 3.7.
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.5.8)::
pip install kikuchipy==0.5.8
.. _optional-dependencies:
Optional dependencies
---------------------
Some functionality is optional and requires extra dependencies which must be installed
manually:
- :doc:`pyebsdindex`: Hough indexing. We recommend to install with
optional GPU support via :doc:`pyopencl` with
``pip install pyebsdindex[gpu]`` or ``conda install pyebsdindex``.
- `nlopt `_: Extra
optimization algorithms used in EBSD orientation and/or projection center refinement.
- :doc:`pyvista`: 3D plotting of master patterns.
Install all optional dependencies::
pip install kikuchipy[all]
Note that this command will not install ``pyopencl``, which is required for GPU support
in ``pyebsdindex``. If the above command failed for some reason, one can try to install
each optional dependency individually.
.. warning::
The option to install optional dependency ``pyvista`` via
``pip install kikuchipy[viz]`` will be removed in version 0.9. Please install
manually or via ``pip install kikuchipy[all]`` instead.
.. _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.9
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.5.8)::
conda install kikuchipy==0.5.8
.. _install-with-hyperspy-bundle:
With the HyperSpy Bundle
========================
kikuchipy is available in the HyperSpy Bundle. See :ref:`hyperspy:hyperspy-bundle` for
instructions.
.. warning::
kikuchipy is updated more frequently than the HyperSpy Bundle, thus the installed
version of kikuchipy will most likely not be the latest version available. See the
`HyperSpy Bundle repository `__ for how
to update packages in the bundle.
.. _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
============
kikuchipy builds on the great work and effort of many people.
This is a list of explicit package dependencies (some are `Optional dependencies`_):
==================================================== ============================================================
Package Purpose
==================================================== ============================================================
: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
:doc:`matplotlib ` Visualization
:doc:`numba ` CPU acceleration
:doc:`numpy ` Handling of N-dimensional arrays
:doc:`orix ` Handling of rotations and vectors using crystal symmetry
:doc:`pooch ` Downloading and caching of datasets
`pyyaml `__ Parcing of YAML files
`tqdm `__ Progressbars
:doc:`scikit-image ` Image processing like adaptive histogram equalization
`scikit-learn `__ Multivariate analysis
:doc:`scipy ` Optimization algorithms, filtering and more
==================================================== ============================================================