From QuTiP version 4.6 onwards, you should be able to get a working version of QuTiP with the standard
pip install qutip
It is not recommended to install any packages directly into the system Python environment; consider using pip
or conda
virtual environments to keep your operating system space clean, and to have more control over Python and other package versions.
You do not need to worry about the details on the rest of this page unless this command did not work, but do also read the next section for the list of optional dependencies. The rest of this page covers installation directly from conda, installation from source, and additional considerations when working on Windows.
QuTiP depends on several open-source libraries for scientific computing in the Python programming language. The following packages are currently required:
.. cssclass:: table-striped
Package | Version | Details |
---|---|---|
Python | 3.6+ | |
NumPy | 1.16+ | |
SciPy | 1.0+ | Lower versions may have missing features. |
In addition, there are several optional packages that provide additional functionality:
.. cssclass:: table-striped
Package | Version | Details |
---|---|---|
matplotlib |
1.2.1+ | Needed for all visualisation tasks. |
cython |
0.29.20+ | Needed for compiling some time-dependent Hamiltonians. |
cvxpy |
1.0+ | Needed to calculate diamond norms. |
C++ Compiler | GCC 4.7+, MS VS 2015 | Needed for compiling Cython files, made when using string-format time-dependence. |
pytest ,
pytest-rerunfailures |
5.3+ | For running the test suite. |
LaTeX | TeXLive 2009+ | Needed if using LaTeX in matplotlib figures, or for nice circuit drawings in IPython. |
QuTiP is designed to work best when using the Anaconda or Intel Python distributions that support the conda package management system.
It is still possible to use pip
to install QuTiP while using conda, but uniformly using conda will make complete dependency management easier.
If you already have your conda environment set up, and have the conda-forge
channel available, then you can install QuTiP using:
conda install qutip
This will install the minimum set of dependences, but none of the optional packages.
The default Anaconda environment has all the Python packages needed for running QuTiP. You may however wish to install QuTiP in a Conda environment (env) other than the default Anaconda environment. You may wish to install Miniconda instead if you need to be economical with disk space. However, if you are not familiar with conda environments and only plan to use if for QuTiP, then you should probably work with a default Anaconda / Miniconda environment.
To create a Conda env for QuTiP called qutip-env
:
conda create -n qutip-env python
If you have created a specific conda environment, or you have installed Miniconda, then you will need to install any optional packages for QuTiP.
Recommended:
conda install numpy scipy cython matplotlib pytest jupyter notebook spyder
Minimum (recommended):
conda install numpy scipy cython matplotlib
Absolute minimum:
conda install numpy scipy
The jupyter
and notebook
packages are for working with Jupyter notebooks (aka IPython notebooks).
Spyder is an IDE for scientific development with Python.
To install QuTiP from conda, you will need to add the conda-forge channel. The following command adds this channel with lowest priority, so conda will still try and install all other packages normally:
conda config --append channels conda-forge
If you want to change the order of your channels later, you can edit your .condarc
(user home folder) file manually, but it is recommended to keep defaults
as the highest priority.
Official releases of QuTiP are available from the download section on the project's web pages, and the latest source code is available in our GitHub repository. In general we recommend users to use the latest stable release of QuTiP, but if you are interested in helping us out with development or wish to submit bug fixes, then use the latest development version from the GitHub repository.
You can install from source by using the Python-recommended PEP 517 procedure, or if you want more control or to have a development version, you can use the low-level build procedure with setuptools.
The easiest way to build QuTiP from source is to use a PEP-517-compatible builder such as the build
package available on pip
.
These will automatically install all build dependencies for you, and the pip
installation step afterwards will install the minimum runtime dependencies.
You can do this by doing (for example)
pip install build
python -m build <path to qutip>
pip install <path to qutip>/dist/qutip-<version>.whl
The first command installs the reference PEP-517 build tool, the second effects the build and the third uses pip
to install the built package.
You will need to replace <path to qutip>
with the actual path to the QuTiP source code.
The string <version>
will depend on the version of QuTiP, the version of Python and your operating system.
It will look something like 4.6.0-cp39-cp39-manylinux1_x86_64
, but there should only be one .whl
file in the dist/
directory, which will be the correct one.
This is the method to have the greatest amount of control over the installation, but it the most error-prone and not recommended unless you know what you are doing.
You first need to have all the runtime dependencies installed.
The most up-to-date requirements will be listed in pyproject.toml
file, in the build-system.requires
key.
As of the 4.6.0 release, the build requirements can be installed with
pip install setuptools wheel 'cython>=0.29.20' 'numpy>=1.16.6,<1.20' 'scipy>=1.0'
or similar with conda
if you prefer.
You will also need to have a functional C++ compiler installed on your system.
This is likely already done for you if you are on Linux or macOS, but see the section on Windows installations if that is your operating system.
To install QuTiP from the source code run:
python setup.py install
To install OpenMP support, if available, run:
python setup.py install --with-openmp
This will attempt to load up OpenMP libraries during the compilation process, which depends on you having suitable C++ compiler and library support. If you are on Linux this is probably already done, but the compiler macOS ships with does not have OpenMP support. You will likely need to refer to external operating-system-specific guides for more detail here, as it may be very non-trivial to correctly configure.
If you wish to contribute to the QuTiP project, then you will want to create your own fork of the QuTiP git repository, clone this to a local folder, and install it into your Python environment using:
python setup.py develop
When you do import qutip
in this environment, you will then load the code from your local fork, enabling you to edit the Python files and have the changes immediately available when you restart your Python interpreter, without needing to rebuild the package.
Note that if you change any Cython files, you will need to rerun the build command.
You should not need to use sudo
(or other superuser privileges) to install into a personal virtual environment; if it feels like you need it, there is a good chance that you are installing into the system Python environment instead.
As with other operating systems, the easiest method is to use pip install qutip
, or use the conda
procedure described above.
If you want to build from source or use runtime compilation with Cython, you will need to have a working C++ compiler.
You can download the Visual Studio IDE from Microsoft, which has a free Community edition containing a sufficient C++ compiler. This is the recommended compiler toolchain on Windows. When installing, be sure to select the following components:
- Windows "X" SDK (where "X" stands for your version: 7/8/8.1/10)
- Visual Studio C++ build tools
You can then follow the installation from source section as normal.
Important
In order to prevent issues with the PATH
environment variable not containing the compiler and associated libraries, it is recommended to use the developer command prompt in the Visual Studio installation folder instead of the built-in command prompt.
The Community edition of Visual Studio takes around 10GB of disk space. If this is prohibitive for you, it is also possible to install only the build tools and necessary SDKs instead, which should save about 2GB of space.
QuTiP includes a collection of built-in test scripts to verify that an installation was successful.
To run the suite of tests scripts you must also have the pytest
testing library.
After installing QuTiP, leave the installation directory, run Python (or IPython), and call:
import qutip.testing
qutip.testing.run()
This will take between 10 and 30 minutes, depending on your computer. At the end, the testing report should report a success; it is normal for some tests to be skipped, and for some to be marked "xfail" in yellow. Skips may be tests that do not run on your operating system, or tests of optional components that you have not installed the dependencies for. If any failures or errors occur, please check that you have installed all of the required modules. See the next section on how to check the installed versions of the QuTiP dependencies. If these tests still fail, then head on over to the QuTiP Discussion Board or the GitHub issues page and post a message detailing your particular issue.
QuTiP includes an "about" function for viewing information about QuTiP and the important dependencies installed on your system. To view this information:
import qutip
qutip.about()