If interested, a Docker image (for Mac OS X / Linux) is available on the Docker hub and could be retrieved through the command docker pull javert899/pm4py:latest . It could be run through the command docker run -it javert899/pm4py:latest bash

Otherwise, in order to be able to use pm4py under Linux, the presence of a C/C++ compiler is required. Most distributions default install include already the gcc and g++ compilers, respectively compiling C and C++ code.

In order to check the presence of gcc and g++ on your current distribution, along with their version, the following commands could be given:

gcc -v
g++ -v

The response is a complex text that contains, in the end, the version of the compiler that is currently installed:

Thread model: posix
gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)

If they are not installed, refer to your distribution support for instructions on how to install them. We provide some commands for the most widely used distributions:

Debian / Ubuntu**

apt-get install gcc gcc-g++


yum install gcc gcc-c++

Moreover, the presence of GraphViz is required on the system. To check the presence of GraphViz, please give the following command:

dot -h

If GraphViz is not installed, you will get an error from the output of that program. To install GraphViz, a command depending on the distribution should be given. We provide some commands for the most widely used distributions:

Debian / Ubuntu

apt-get install graphviz


yum install graphviz

Some other libraries are required to be manually installed on some platforms (like ARM):

apt install libblas-dev
apt install liblapack-dev
apt install libsuitesparse-dev

Moreover, also Tkinter is required. Tkinter is required by Python but could not be installed with pip. It is required to install it through the distribution package manager:

Debian / Ubuntu

apt-get install python3-tk


yum install tkinter

Also for Linux, Python 3.6.x is required. Since the stable versions of the Linux distributions generally include previous versions of Python 3.x, it is suggested to install the Anaconda 5.2.0 or the Miniconda 4.5.x Python distribution for Linux. In particular, this section will focus on installing Miniconda 4.5.4

Important: the compatibility with successive versions of Python 3.x (for example Python 3.7), or with other Python distributions, is not excluded a priori, but in this installation tutorial we do not support this. Some deployments currently are working also on Python 3.5.x and Python 3.7.x

Generally, installation on Linux may be possible without problems on any Python 3.6.x plain package (found for example in the testing version of some Linux distributions), but if it fails then follow the versions mandated by this tutorial.

Miniconda is a Python distribution focused on data science and machine learning related applications. Miniconda 4.5.4 could be retrieved using the following link (important: it is not needed if Anaconda 5.2.0 is installed):

The 64 bit installer (32 bit architecture has limited memory allocation for threads/processes) could be executed from the command line using the following instruction:

root@debian:~# bash

Important note: it is not required to be root; any user could suffice.

As the first step in the installation of Miniconda, it is required to read the license agreements. Press Enter key in order to read them, move with up and down arrow keys in order to read the points, and then click q in order to quit the license agreements and accept/deny (yes/no) that. Then, a path for the installation of Miniconda is required. The proposed path, that is inside the user directory, is proposed and could be accepted as-is. Then, Miniconda asks if the user wants to add executables to the user path, it is convenient to say yes here.

In order to install PM4Py and its dependencies, the following command could be provided:

pip install pm4py