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).
 |