Installation

Installation procedure for all main operating systems

Hardware requirement

PyFAI has been tested on various hardware: i386, x86_64, PPC64le, ARM, ARM64. The main constrain may be the memory requirement: 2GB of memory is a minimal requirement to run the tests. The program may run with less but “MemoryError” are expected (appearing sometimes as segmentation faults). As a consequence, a 64-bits operating system with enough memory is strongly advised.

Dependencies

PyFAI is a Python library which relies on the scientific stack (numpy, scipy, matplotlib)

  • Python: version 3.7 or newer (version 3.6 was dropped with 0.21)

  • NumPy: version 1.12 or newer

  • SciPy: version 0.18 or newer

  • Matplotlib: verson 2.0 or newer

  • FabIO: version 0.5 or newer

  • h5py: version 2.10 or newer

  • silx: version 1.1 or newer (silx 2 for python 3.12)

There are plenty of optional dependencies which will not prevent pyFAI from working by may impair performances or prevent tools from properly working:

  • pyopencl (for GPU computing)

  • fftw (for image analysis)

  • PyQt5 or PySide2 (for the graphical user interface)

Build dependencies:

PyFAI v2023.01 intoduced a new build system based on meson with the following requirements:

  • meson-python (>=0.11)

  • git

  • meson (>=0.64)

  • ninja

The former build system was using setup.py files, based on setuptools and numpy.distutils, was removed with pyFAI v2023.10.

In addition to the build tools, pyFAI needs a C/C++ compiler to build extensions and cython (>0.29) to generate those C/C++ files. The following compiler have been successfully tested:

  • Linux: gcc and clang (both support OpenMP)

  • Windows: msvc++ (supports OpenMP)

  • Apple: clang modified version for mac computer without support for OpenMP, please use OpenCL for parallelization.

Building procedure

git clone https://github.com/silx-kit/pyFAI
cd pyFAI
pip install -r requirements.txt
pip install . --upgrade

or

git clone https://github.com/silx-kit/pyFAI
cd pyFAI
pip install build --upgrade
pip install -r requirements.txt
python3 -m build --wheel
pip install --pre --no-index --find-links dist pyFAI

Detailed installation procedure

Test suites

PyFAI comes with a test suite to ensure all core functionalities are working as expected and numerical results are correct:

python3 run_tests.py

There are few specific options to run_tests.py:

  • -x: Disable the needing the GUI (faster)

  • -c: Estimates the test-coverage for the project

Nota: to run the test, an internet connection is needed as 20MB of test images need to be download. You may have to set the environment variable http_proxy and https_proxy according to the networking environment you are in.

Environment variables

PyFAI can use a certain number of environment variable to modify its default behavior:

  • PYFAI_OPENCL: set to “0” to disable the use of OpenCL

  • PYFAI_DATA: path with gui, calibrant, …

  • PYFAI_TESTIMAGES: path wit test images (if absent, they get downloaded from the internet)

  • PYFAI_NO_LOGGING: Disable the configuration of any python logger in interactive mode