.. _install-label:
.. warning::
These installation instructions are pending the release of the first version of eXSpy.
In the meantime, you will need to install the development version, see instructions
below.
Installation
************
To install eXSpy, you have the following options (independent of the operating system you use):
1. eXSpy is included in the `HyperSpy Bundle `_,
a standalone program that includes a python distribution and all relevant libraries
(recommended if you do not use *python* for anything else).
2. :ref:`conda` (recommended if you are also working with other *python* packages).
3. :ref:`pip`.
4. Installing the development version from `GitHub `_.
Refer to the appropriate section in the :external+hyperspy:ref:`HyperSpy user guide
` (replacing ``hyperspy`` by ``exspy``).
.. _conda:
Installation using conda
========================
Follow these 3 steps to install eXSpy using **conda** and start using it.
1. Creating a conda environment
-------------------------------
eXSpy requires Python 3 and ``conda`` -- we suggest using the Python 3 version
of `Miniforge `_.
We recommend creating a new environment for the eXSpy package (or installing
it in the :external+hyperspy:ref:`HyperSpy `
environment, if you have one already). To create a new environment:
1. Load the miniforge prompt.
2. Run the following command:
.. code-block:: bash
(base) conda create -n exspy -y
2. Installing the package in the new environment
------------------------------------------------
Now activate the eXSpy environment and install the package from ``conda-forge``:
.. code-block:: bash
(base) conda activate exspy
(exspy) conda install -c conda-forge exspy -y
Required dependencies will be installed automatically.
Installation is completed! To start using it, check the next section.
.. Note::
If you run into trouble, check the more detailed documentation in the
:external+hyperspy:ref:`HyperSpy user guide `.
3. Getting Started
------------------
To get started using eXSpy, especially if you are unfamiliar with Python, we
recommend using `Jupyter notebooks `_. Having installed
eXSpy as above, a Jupyter notebook can be installed and opened using the following commands
entered into an anaconda prompt (from scratch):
.. code-block:: bash
(base) conda activate exspy
(exspy) conda install -c conda-forge jupyterlab -y
(exspy) jupyter lab
.. _pip:
Installation using pip
======================
Alternatively, you can also find eXSpy in the `Python Package Index (PyPI) `_
and install it using (requires ``pip``):
.. code-block:: bash
pip install exspy
Required dependencies will be installed automatically.
Optional dependencies
---------------------
Optional dependencies can be installed using the
`extras `_.
To install all optional dependencies:
.. code-block:: bash
pip install exspy[all]
The list of *extras*:
+------------------+-----------------------------+------------------------------------------------------------+
| Extra | Dependencies | Usage |
+==================+=============================+============================================================+
| ``speed`` | ``numexpr`` | To speed up fitting with components supporting ``numexpr`` |
+------------------+-----------------------------+------------------------------------------------------------+
| ``gui-jupyter`` | ``hyperspy_gui_ipywidgets`` | To use the ``ipywidgets`` user interface |
+------------------+-----------------------------+------------------------------------------------------------+
| ``gui-traitsui`` | ``hyperspy_gui_traitsui`` | To use the ``qt`` user interface |
+------------------+-----------------------------+------------------------------------------------------------+
And for development, the following *extras* are available (see ``pyproject.toml`` for more information):
- tests
- doc
- dev
Updating the package
====================
Using **conda**:
.. code-block:: bash
conda update exspy -c conda-forge
Using **pip**:
.. code-block:: bash
pip install exspy --upgrade
.. Note::
If you want to be notified about new releases, please *Watch (Releases only)* the `eXSpy repository
on GitHub `_ (requires a GitHub account).