You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
4.6 KiB
129 lines
4.6 KiB
***********************
|
|
Installation
|
|
***********************
|
|
|
|
Requirements
|
|
==================
|
|
|
|
Before installing stormpy, make sure
|
|
|
|
- Python 3 is available on your system.
|
|
- `pycarl <https://moves-rwth.github.io/pycarl>`_ is available.
|
|
- `Storm <http://www.stormchecker.org/>`_ is available on your system.
|
|
|
|
To avoid issues, we suggest that both pycarl and Storm use the same version of `carl <https://smtrat.github.io/carl>`_.
|
|
The simplest way of ensuring this is to first install carl as explained in the `Storm installation guide <http://www.stormchecker.org/documentation/installation/manual-configuration.html#carl>`_.
|
|
You can then install Storm and pycarl independently.
|
|
|
|
.. _compatibility_stormpy_storm:
|
|
|
|
Compatibility of stormpy and Storm
|
|
----------------------------------
|
|
Note that stormpy and Storm are continuously extended and modified.
|
|
It is therefore important to use compatible versions of stormpy and Storm.
|
|
You have two choices for stormpy depending on the version of Storm you are using:
|
|
|
|
1. **Release version**:
|
|
You use the latest `release of Storm <https://github.com/moves-rwth/storm/releases>`_ or the ``stable`` branch or you installed Storm via `Homebrew <https://www.stormchecker.org/documentation/obtain-storm/homebrew.html>`_.
|
|
In these cases, you need to use the latest `release of stormpy <https://github.com/moves-rwth/stormpy/releases>`_.
|
|
For example, Storm 1.6.0 is compatible with stormpy 1.6.0.
|
|
|
|
2. **Master branch**:
|
|
You use the ``master`` branch of Storm.
|
|
In this case, you need to use the ``master`` branch of stormpy as well.
|
|
Note that due to ongoing development in Storm, after some commits, the stormpy ``master`` might not work with the Storm ``master`` anymore.
|
|
We will fix such issues as fast as possible.
|
|
|
|
|
|
Installation Steps
|
|
====================
|
|
|
|
Virtual Environments
|
|
--------------------
|
|
|
|
Virtual environments create isolated environments for your projects.
|
|
This helps to keep your system clean, work with different versions of packages and different version of python.
|
|
While it is not required, we recommend the use of such virtual environments. To get you started, we recommend
|
|
`this guide <http://docs.python-guide.org/en/latest/dev/virtualenvs/>`_ or
|
|
`this primer <https://realpython.com/blog/python/python-virtual-environments-a-primer>`_.
|
|
|
|
In short you can create a virtual environment ``env`` with::
|
|
|
|
$ pip install virtualenv
|
|
$ virtualenv -p python3 env
|
|
$ source env/bin/activate
|
|
|
|
The last step activates the virtual environment.
|
|
Whenever using the environment, the console prompt is prefixed with ``(env)``.
|
|
|
|
|
|
Building stormpy
|
|
----------------
|
|
|
|
**Clone** the :ref:`compatible stormpy version<compatibility_stormpy_storm>` into any suitable location.
|
|
For the ``master`` of stormpy use::
|
|
|
|
$ git clone https://github.com/moves-rwth/stormpy.git
|
|
$ cd stormpy
|
|
|
|
or for the latest release use (remember to use the correct version)::
|
|
|
|
$ git clone https://github.com/moves-rwth/stormpy.git --branch 1.6.0
|
|
$ cd stormpy
|
|
|
|
**Build** stormpy in develop mode using your favourite python distribution way of installing: e.g.::
|
|
|
|
$ python3 setup.py develop
|
|
|
|
or::
|
|
|
|
$ pip install -ve .
|
|
|
|
|
|
Optional build arguments
|
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The build step ``build_ext`` also takes optional arguments for a more advanced configuration of stormpy.
|
|
|
|
* *Specifying which Storm library to use*
|
|
|
|
If you have multiple versions of Storm or cmake is not able to find your Storm version,
|
|
you can specify the ``--storm-dir YOUR-PATH-TO-STORM`` flag::
|
|
|
|
$ python3 setup.py build_ext --storm-dir YOUR-PATH-TO-STORM develop
|
|
|
|
* *Disabling functionality*
|
|
|
|
If you want to disable certain functionality in stormpy from being built you can use the following flags:
|
|
|
|
* ``--disable-dft`` to disable support for dynamic fault trees (DFTs)
|
|
* ``--disable-pars`` to disable support for parametric models
|
|
|
|
* *Building stormpy in debug mode*
|
|
|
|
If you want to build stormpy in debug mode you can add the ``--debug`` flag::
|
|
|
|
$ python3 setup.py build_ext --debug develop
|
|
|
|
* *Setting number of build threads*
|
|
|
|
The build of stormpy uses all available cores per default.
|
|
If you want to configure the number of threads manually you can specify the ``--jobs`` (or ``-j``) flag::
|
|
|
|
$ python3 setup.py build_ext --jobs 2 develop
|
|
|
|
|
|
Testing stormpy installation
|
|
----------------------------
|
|
|
|
After building, you can run the test files by either::
|
|
|
|
$ python setup.py test
|
|
|
|
or by invoking pytest directly with::
|
|
|
|
$ pip install pytest
|
|
$ py.test tests/
|
|
|
|
If the tests pass, you can now use stormpy.
|
|
To get started, continue with our :doc:`getting_started`, consult the test files in ``tests/`` or the :doc:`api` (work in progress).
|