Installation (Linux, ARM)

Installation (Linux, ARM)

For the basic PM4Py, we offer support for both the ARM32/ARM64 Linux operating systems.

The following instructions can be followed in order to install PM4Py on Linux/ARM (example, Raspberry). In the following, it is assumed that the underlying distribution is Debian-based (Debian, Ubuntu).

Install Python3 and Python3-PIP if needed:

# apt install python3 python3-pip

After that, install accessory packages needed to run PM4Py:

# apt install graphviz python3-numpy python3-scipy python3-matplotlib python3-pandas python3-pulp

And eventually the Python packages that are needed in addition to the previous through PIP (important: do not use pip3 install -U)

# pip3 install cython pyvis networkx>=2.4 ciso8601 lxml graphviz pydotplus scikit-learn sklearn pytz intervaltree

And eventually the PM4Py package (without -U and without deps)

# pip3 install --no-deps pm4py

Then, PM4Py is working perfectly 🙂 with the exception of the Pyarrow library that do not offer a binary on Linux.

PM4PYCVXOPT

The CVXOPT package is not available for the ARM32 platform. Hence, on Raspberry Pi Zero, Pi A, Pi A+, Pi B, Pi B+ or other ARM32 based machines it is impossible to perform the alignments.

In order to use the CVXOPT package for the alignments, the following instructions can be used. First, the CVXOPT package for ARM64 needs to be installed

# apt install python3-cvxopt

Then, the following command can be used to install PM4PYCVXOPT

# pip3 install --no-deps pm4pycvxopt

Beta: installation of Fastparquet (ARM64)

From 1.2.9, we will offer support for Fastparquet, that is a (slower) way to import/export Parquet files. This has been tested on ARM64 (ARM32 needs still to be tested).

Fastparquet requires some additional system dependencies to be installed:

# sudo apt install python3-numba python3-llvm

Then, some Python packages are needed:

# sudo pip3 install thrift python-snappy

Eventually, Fastparquet can be installed on the system

# pip3 install fastparquet

and from then onwards should work/import correctly.