Installing PyMultiNest and PyCuba¶
Contents
You need to install the python module and put the libraries it uses into your library path.
1. Installing the Python Module¶
Installing the python module from PyPI is easy:
$ pip install pymultinest
Use the “–user” switch if you only want to install the software locally
On older systems, you may need to use easy_install instead of “pip install”
To get the latest version, download the source directly from the Code repository and install it locally:
$ git clone https://github.com/JohannesBuchner/PyMultiNest/
$ cd PyMultiNest
$ python setup.py install
However, installing pymultinest is not enough; MultiNest and Cuba are not included, so you will see an error like:
ERROR: Could not load MultiNest library "libmultinest.so"
ERROR: You have to build it first, and point the LD_LIBRARY_PATH environment variable to it!
or:
OSError: libcuba.so: cannot open shared object file: No such file or directory
You need to install the libraries themselves! The next section explains how.
2. Prerequisites for building the libraries¶
To use PyMultiNest and PyCuba, you need to install the relevant libraries. If you only want to use one of them, skip the others according.
Prerequisites: numpy, scipy, matplotlib, c and fortran compilers (e.g. gcc, gfortran)
Prerequisites for MultiNest: cmake, blas, lapack, atlas (and their development versions)
Recommended: git
On Ubuntu Linux, install with:
$ sudo apt-get install python-{scipy,numpy,matplotlib,progressbar} ipython libblas{3,-dev} liblapack{3,-dev} libatlas{3-base,-dev} cmake build-essential git gfortran
On Mac OSX:
As in the instructions above, you need cmake (e.g. with “brew install cmake”), a Fortran compiler (e.g. with “brew install gcc”) and possibly MPI (e.g. with “brew install open-mpi” and then “pip install mpi4py”)
If you google for “MultiNest Mac OSX” or “PyMultiNest Mac OSX” you will find installation instructions.
2. Building the libraries¶
If you want to use PyMultiNest:
Get and compile MultiNest (use the cmake version from https://github.com/JohannesBuchner/MultiNest). The goal is to create lib/libmultinest.so
git clone https://github.com/JohannesBuchner/MultiNest cd MultiNest/build cmake .. make
On e.g. Mac OSX, make sure the correct compilers are used by calling cmake using -DCMAKE_C_COMPILER=/path/to/gcc -DCMAKE_CXX_COMPILER=/path/to/g++
Include the lib/ directory in your LD_LIBRARY_PATH
More detailed install instructions for MultiNest are available in the tutorial.
If you want to use PyCuba: Get and compile Cuba. The goal is to create the libcuba.so file
git clone https://github.com/JohannesBuchner/cuba/ cd cuba ./configure ./makesharedlib.sh
Include the containing directory your LD_LIBRARY_PATH.
To install on Mac OSX, make sure the multinest/cuba libraries are in your library path. For that, it is simplest to copy them, e.g.:
$ cp -v ~/Downloads/MultiNest/lib/lib* /anaconda3/lib/
A discussion on installing on Mac can be found in issue 10. Compiling with MPI support on Mac is discussed in issue 45
3. Running some code¶
PyMultiNest and PyCuba have to be able to find the corresponding libraries. So put the three directories in the dynamic library load path:
$ export LD_LIBRARY_PATH=$HOME/Downloads/MultiNest/lib:$HOME/Downloads/cuba/directory/:$LD_LIBRARY_PATH
On Mac OSX, do the same for DYLD_LIBRARY_PATH.
Replace the above with your actual path.
Consider putting this line into your shell startup script (e.g. ~/.bashrc).
Test importing the libraries:
$ python -c 'import pymultinest'
$ python -c 'import pycuba'
Try out the demo programs distributed in the package:
$ python $OLDPWD/pymultinest_demo.py
....
Acceptance Rate: 0.690765
Replacements: 3650
Total Samples: 5284
Nested Sampling ln(Z): 235.562844
Importance Nested Sampling ln(Z): 236.164929 +/- 0.147246
Acceptance Rate: 0.690809
Replacements: 3653
Total Samples: 5288
Nested Sampling ln(Z): 235.565469
Importance Nested Sampling ln(Z): 236.165091 +/- 0.147221
ln(ev)= 235.91594564793959 +/- 0.12311459261215110
Total Likelihood Evaluations: 5288
Sampling finished. Exiting MultiNest
analysing data from chains/3-.txt
evidence: 235.9 +- 0.1
parameter values:
x : 15.968 +- 8.548
y : 15.165 +- 9.195
$ python $OLDPWD/pymultinest_solver_demo.py
$ python $OLDPWD/pycuba_demo.py
Congratulations! You are now ready to run your own code. Copy the demo files as starting points, play with the functions and analysis, and integrate it to your own code. The documentation should help you:
Continue with PyMultiNest documentation
Continue with PyCuba documentation
Getting help¶
Try searching the error message. Search through the existing questions.
Generating the documentation¶
Go in the doc directory and run make:
$ cd doc && make html
Point your web browser to _build/html/index.html in doc.