# Windows

## Windows (64/32 bit)

For some dependencies of the project, i.e. ciso8601 and cvxopt, you need to have a working Windows C/C++ compiler. We suggest to install the Microsoft Visual Studio 2017 compiler, that available for free through the following link:

Microsoft Visual Studio

During installation, it is vital to install all C++ related development tools. Note that this leads to a big download, i.e. around 6GB.

Moreover, for the purpose of visualization with pm4py, GraphViz installation is required. To install GraphViz, the installer on this page could be used:

Graphviz

After installation, GraphViz is located in the program files directory (on 64 bit systems, it is likely to be located on the x86 program files folder). The bin\ subfolder of the GraphViz directory, e.g. found in C:\Program Files (x86)\Graphviz2.38\bin, needs to be added manually to the system path. For Windows 10, we suggest the following article in order to have an explanation of how to add a new folder to the system path:

Adding a folder to the system path

### Windows (64 bit)

For Windows 64 bit, both Anaconda 5.2.0 (containing Python 3.6) and Miniconda 4.5.x (containing Python 3.6) are supported. We suggest installing Miniconda 4.5.4 (Python 3.6.x) as Python distribution. If you have any of these distributions already installed, then it is possible to skip this part of the installation tutorial. If not, then we suggest to set-up Miniconda. Miniconda is a Python distribution focused on data science and machine learning related applications.

Important: the compatibility with successive versions of Python 3.x (for example Python 3.7), or with other Python distributions, or with other versions of Anaconda/Miniconda, is not excluded a priori, but in this installation tutorial we do not support this. We exclude a priori compatibility with previous versions of Python, like for example Python 3.4.x and Python 3.5.x

Miniconda 4.5.4 (that is needed if no other Python distributions are installed) could be retrieved using the following link:

Miniconda with Python 3.6.x

During the installation of the Miniconda distribution, it is important to select the addition of Miniconda Python to the system path option. This allows us to get easy access to Python from the command line / Powershell.

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

pip install pm4py


A .zip file containing Windows 64-bit Miniconda 3.6 distribution and all the dependencies already installed could be found at the URL

Miniconda 4.5.4 with pre-installed dependencies

### Windows (32 bit)

Due to the limitations of a 32 bit architecture (limited memory possibilities for threads/processes), it is suggested to use a Windows (64 bit) installation whenever possible.

A full Anaconda 5.2.0 (that is based on Python 3.6.x) installation is suggested (since the required library cvxopt is provided compiled in pip only for 64 bit installations). Anaconda is a free and open source distribution of the Python programming language for data science and machine learning related applications.

Important: the compatibility with successive versions of Python 3.x (for example Python 3.7), or with other Python distributions, or with other versions of Anaconda/Miniconda, is not excluded a priori, but in this installation tutorial we do not support this. We exclude a priori compatibility with previous versions of Python, like for example Python 3.4.x and Python 3.5.x

https://repo.anaconda.com/archive/Anaconda3-5.2.0-Windows-x86.exe

Then, install Anaconda. An important option in order to get easy access to Python from the command line / Powershell is setting the addition of Anaconda Python to the system path. pm4py requires additional packages to work. In order to install them, it is necessary to open a command line / Powershell and reach the folder that contains pm4py sources. An example of the instruction to reach a specific folder in a Windows environment is the following (the path should be replaced):

C:\>cd C:\Users\johndoe\pm4py-source


The following command is required to install cvxopt (a linear/integer programming solver, for further information see this link). Here the conda package manager provided by Anaconda is used:

conda install cvxopt


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

pip install pm4py