Skip to content

Software and Libraries

QDE workspaces come pre-configured with comprehensive quantum computing libraries through the PsiQDK meta-package, plus support for installing additional packages to meet your specific development needs.

PsiQDK: Quantum Development Kit

Every QDE workspace includes the PsiQDK (PsiQuantum Quantum Development Kit), a unified meta-package that bundles all of PsiQuantum's quantum development libraries with guaranteed version compatibility.

Automatic Updates

PsiQDK is automatically updated to the latest stable version each time you wake, reboot, or deploy a new QDE workspace. If you need to lock a specific version for a project, create a virtual environment instead.

Core Libraries

The PsiQDK includes these essential quantum computing tools:

Workbench ⧉ provides the core fault-tolerant quantum computing (FTQC) programming interface. Use Workbench to design quantum circuits, simulate quantum algorithms, and prepare code for fault-tolerant execution.

Workbench Algorithms ⧉ contains reusable quantum sub-routines (Qubricks). These components accelerate development by providing tested, optimized implementations of standard quantum operations.

Bartiq ⧉ enables detailed quantum resource estimation and analysis. Calculate the computational requirements for your quantum algorithms, estimate execution time, and analyze resource scaling for different problem sizes.

Construct Tools include utilities for previewing Circuits and Resources Analysis in VSCode and Jupyter notebooks.

Pre-installed Libraries

Current Package List

The following packages are currently pre-installed in QDE workspaces. This list may change as new versions are deployed.

Scientific Computing

  • pandas - Data analysis and manipulation
  • numpy - Numerical computing with arrays
  • sympy - Symbolic mathematics
  • scipy - Scientific computing and optimization
  • jax - High-performance machine learning research
  • jaxlib - JAX support library
  • matplotlib - Plotting and visualization
  • networkx - Network analysis and graph algorithms
  • graphviz - Graph visualization software
  • igraph - Complex network analysis
  • pyzx - Quantum circuit optimization with ZX-calculus
  • pyliqtr - Quantum algorithm implementations

Development Tools

  • pydantic - Data validation using Python type hints
  • pytest - Testing framework
  • flake8 - Python code linting
  • uv - Fast Python package installer and resolver
  • ruff - Extremely fast Python linter
  • pipx - Install and run Python applications in isolated environments

Using PsiQDK Libraries

All PsiQDK libraries are immediately available in your workspace without additional installation:

from psiqworkbench import QPU
from workbench_algorithms import *
import bartiq
import numpy as np
import matplotlib.pyplot as plt

# Libraries are ready to use
qc = QPU()
qc.reset(4)

Installing Additional Packages

The QDE supports installing additional Python packages to extend functionality beyond the pre-installed libraries.

Using pip

Install packages using pip in the terminal or notebook cells:

# Install from terminal
pip install package-name

# Install specific version
pip install package-name==1.2.0

# Install with extra dependencies
pip install package-name[extras]

In Jupyter notebooks, use the ! prefix:

# Install in notebook cell
!pip install package-name
!pip install networkx matplotlib

Package Persistence

Packages installed via pip persist across workspace sessions. Once installed, they remain available until the workspace is deleted or reset.

Installed packages are stored in your workspace's Python environment and do not affect other workspaces or users.

Managing Dependencies

Use best practices for dependency management in your quantum computing projects.

Requirements Files

Create requirements.txt files for reproducible environments:

# requirements.txt
qiskit>=0.45.0
networkx>=2.8
matplotlib>=3.6.0
numpy>=1.24.0

Install from requirements:

pip install -r requirements.txt

Virtual Environment Strategy

While the QDE provides isolated workspaces, you can create additional virtual environments for specific projects or to lock specific package versions:

# Using uv (recommended for faster package management)
pip install uv
uv venv quantum_project_env
source quantum_project_env/bin/activate
uv pip install -r project_requirements.txt

# Or using standard venv
python -m venv quantum_project_env
source quantum_project_env/bin/activate
pip install -r project_requirements.txt

Use virtual environments when:

  • You need to lock specific PsiQDK or library versions for reproducibility
  • Working with conflicting dependencies across different projects
  • Testing compatibility with different library versions

Checking Installed Packages

List currently installed packages:

pip list
pip show package-name

In Python, check versions programmatically:

import pkg_resources
print(pkg_resources.get_distribution("psi-qdk").version)

Library Updates

PsiQDK libraries are automatically updated to the latest stable version each time you wake, reboot, or deploy a new QDE workspace. Additional packages you install can be updated manually.

Updating Additional Packages

Update manually installed packages:

# Update specific package
pip install --upgrade package-name

# Check outdated packages
pip list --outdated

# Update specific package to latest
pip install --upgrade package-name