Python-based framework for analysis and tuning of quantum dots
Welcome to the QTT framework. This README will shortly introduce the framework, and it will guide you through the structure, installation process and how to contribute. We look forward to working with you!
Quantum Technology Toolbox
Quantum Technology Toolbox (QTT) is a Python-based framework developed initially by QuTech for the tuning and calibration of quantum dots and spin qubits. QuTech is an advanced research center based in Delft, the Netherlands, for quantum computing and quantum internet, a collaboration founded by the University of Technology Delft (TU Delft) and the Netherlands Organisation for Applied Scientific Research (TNO).
For usage of QTT see the detailed documentation on readthedocs.io.
QTT is compatible with Python 3.8+. QTT can be installed as a pip package to be used in a (virtual) Python environment. We assume that software packages like git and python are already installed on your system.
Note: when running Ubuntu Linux, installing these packages is done via:
sudo apt install git gcc python3.11 python3.11-venv python3.11-dev
for Python 3.11.x. Other Linux distributions require similar steps.
Setting up a virtual environment
To create a clean virtual Python environment for your QTT development do:
Now activate the virtual environment. On Linux do:
python3 -m venv env
On Windows do:
python -m pip install virtualenv
python -m virtualenv --copies env
Now we are ready to install QTT.
Installation from PyPI
To use QTT, install it as a pip package:
pip install qtt
or install QTT from source.
Installing from source
The source for QTT can be found at Github. For the default installation from the QTT source directory execute:
git clone https://github.com/QuTech-Delft/qtt.git
pip install wheel
For QTT development install QTT in editable mode:
pip install -e .
For non-editable mode do:
pip install .
When (encountered on Linux) PyQt5 gives an error when installing try upgrading pip
pip install --upgrade pip
and rerun the respective install command.
When incompatibility problems arise
Note: This step is not meant for python >=3.11 Sometimes the default installation does not work because of incompatible dependencies between the used packages on your system. To be sure you use all the right versions of the packages used by QTT and its dependencies do:
pip install . -r requirements_lock_py310.txt
or for development
pip install -e . -r requirements_lock_py310.txt
This will install a tested set of all the packages QTT depends on.
Tests for the QTT packages are contained in the subdirectory
tests. To run the tests run the following command:
When integration tests fail because of errors in plotting try downgrading opencv-python to 220.127.116.11:
pip install opencv-python==18.104.22.168
When running on Windows Sysbsystem for Linux (WSL) you may need to uninstall opencv and install the headless version:
pip uninstall opencv-python
pip install opencv-python-headless
Installing for generating documentation
To install the necessary packages to perform documentation activities for QTT do:
pip install -e .[rtd]
The documentation generation process is dependent on pandoc. When you want to generate the documentation and pandoc is not yet installed on your system navigate to Pandoc and follow the instructions found there to install pandoc. To build the 'readthedocs' documentation do:
Vandersypen research group
For the Vandersypen research group there are more detailed instructions, read the file INSTALL.md in the spin-projects repository.
To update QTT do:
pip install . --upgrade
For a general introduction also see
If you use Spyder then use the following settings:
- Use a
IPythonconsole and in
Tools->Preferences->IPython console->Graphicsset the IPython backend graphics option to
Qt5. This ensures correctly displaying the
Tools->Preferences->Console->Advanced settingsuncheck the box
See Contributing for information about bug/issue reports, contributing code, style, and testing
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.