QuantLib-Python installation on Linux
Luigi Ballabio
Prerequisites
The following assumes that you already installed QuantLib. Instructions for that are available at http://quantlib.org/install/linux.shtml; please make sure that you performed all listed steps.
QuantLib-Python Installation
Installation from a released version
You can download released QuantLib-SWIG versions from the SourceForge download page
at http://sourceforge.net/projects/quantlib/files/; look for the files under the other languages
folder in any of the versioned folders under QuantLib
.
Once you have the tarball, extract it by executing:
tar xzf QuantLib-SWIG-1.7.tar.gz
(1.7 is the most recent version at the time of this writing; you
might have downloaded another one.) This creates a
folder QuantLib-SWIG-1.7
; enter it and configure QuantLib by
executing:
cd QuantLib-SWIG-1.7 ./configure
Contrary to popular belief, working from a released tarball doesn't require you to have SWIG installed. After configuration, you can just run
make -C Python sudo make -C Python install
There are a few of caveats to the above. The first
is that the ./configure
command will need to
invoke quantlib-config
(which was installed with
QuantLib) to find out what flags should be passed to the compiler and
linker; they will also include the additional include directories you
might have specified when you built QuantLib, so you'll be covered
even if you have, say, Boost in a non-standard place. This means
that quantlib-config
must be in your path.
The second is that the call
to ./configure
as written above will find the system
installation of Python. If you want to use a different one (for
instance because you installed Python 3, or you want to use an
Anaconda installation) you must pass the location of your chosen
Python interpreter to ./configure
; for instance, if you
have Python 3 installed as /usr/local/bin/python3
, you'll
have to run:
./configure PYTHON=/usr/local/bin/python3
The third is that, unfortunately, at this
time make install
ignores any prefix you might pass
to ./configure
and always installs to the default
location, which requires you to use sudo
as I wrote
above. If you don't have admin rights, you'll have to look into
Python/Makefile
and pass your prefix
to setup.py.
Of course, you'll also need the Python development files installed
(that is, python.h
and so on). They might be available by
default; but if not, you'll have to figure out how to get them. On
Ubuntu, for instance, you would install them with:
sudo apt-get install python-dev
Similar packages should be available for most other distributions.
Once you're done, you can try to run a few examples to check your installation. To do this, you can simply execute:
make -C Python check
Installation from a git repository
If you want to compile from a checkout of a git repository (such as
the official one
at https://github.com/lballabio/quantlib-swig,
or a fork of it that you might have created) you'll need an additional
step at the beginning of the process. Before running
the ./configure
script, you'll have to create it by
executing
./autogen.sh
To do this, you'll need automake, autoconf and libtool. Again, they're packaged for most Linux distributions; on Ubuntu, you would get them by running
sudo apt-get install automake autoconf libtool
After the execution of ./autogen.sh
, the installation
proceeds as in the previous section. Note, though, that in this case
you'll need SWIG available; you can download and install it
from http://swig.org or, again, get it
packaged for your distribution. On Ubuntu, for instance, the
corresponding command would be
sudo apt-get install swig