General users

Installation via pip or conda

Stable versions of icet are provided via PyPi and as part of conda-forge. This implies that icet can be installed using pip via:

pip3 install icet --user

or using conda via:

conda install -c conda-forge icet

The PyPI package is provided as a source distribution. As a result, the C++ core library has to be compiled as part of the installation, which requires a C++11 compliant compiler to be installed on your system, e.g., GCC 4.8.1 and above or Clang 3.3 and above. By contrast the conda package contains pre-compiled binaries.

Installation via

If installation via pip fails or if you want to use the most recent (development) version you can clone the repository and install using the script as follows:

git clone
cd icet
python3 install --user


It is always a good idea to test that your installation works as advertised. To this end, you should run the icet test suite, which can be accomplished as follows:

curl -O
python3 tests/


Compiling the core library

During development you might have to recompile the C++ core library. This can achieved as follows:

mkdir build
cd build
cmake ..
make -j4
cd ..

Note that this approach requires cmake to be installed on your system.

In this case icet must be added manually to the PYTHONPATH environment variable. To this end, when using the Bash shell or similar (bash, ksh) the following command should be added to the .bashrc file (or equivalent):


Here, ICET_PATH must be replaced with the path to the icet root directory. If you are using a C shell (csh, tcsh) the equivalent lines read:



icet is based on Python3 and invokes functionality from other Python libraries, including ase, pandas, numpy, scipy, scitkit-learn, and spglib. The icet C++ core library depends on Eigen, boost, and pybind11, which are included in the distribution as third-party libraries.