PyQBPP: Python Interface for QUBO++
PyQBPP is a Python wrapper for the QUBO++ library, allowing you to model and solve combinatorial optimization problems using QUBO/HUBO formulations directly from Python.
Features
- Symbolic construction of QUBO/HUBO expressions in Python
- Access to QUBO++ solvers (Easy Solver, Exhaustive Solver, ABS3)
- Familiar Python syntax with the full power of the QUBO++ engine
Supported Environment
- Linux (Ubuntu 20.04 or later)
- x86_64 or arm64 (aarch64) CPUs
- CUDA-enabled NVIDIA GPUs
- Python 3.8 or later
Installation
PyQBPP is available on PyPI. We recommend using a Python virtual environment (venv) to install PyQBPP. No sudo privileges are required.
$ python3 -m venv ~/qbpp-env
$ source ~/qbpp-env/bin/activate
$ pip install pyqbpp
The wheel contains only the Python code. The shared libraries (about 330 MB)
are downloaded automatically from GitHub Releases
the first time you run a PyQBPP program, verified against the SHA-256 recorded
in the wheel, and kept in ~/.cache/pyqbpp/ (set PYQBPP_CACHE_DIR to change
it). To download them in advance, run qbpp-license:
$ qbpp-license
For machines without internet access, see the installation guide.
Without a license key, the number of binary variables is limited to 100.
To remove this limit, register from the User Portal to obtain a trial license key.
Once you have a license key, activate it as follows:
$ qbpp-license -k YOUR-LICENSE-KEY -a
Quick Example
The following program solves a simple QUBO problem by expanding and minimizing the expression f = (a + 2b + 3c - 4)^2.
import pyqbpp as qbpp
a = qbpp.var("a")
b = qbpp.var("b")
c = qbpp.var("c")
f = qbpp.sqr(a + 2 * b + 3 * c - 4)
f = qbpp.simplify_as_binary(f)
print("f =", f)
solver = qbpp.EasySolver(f)
sol = solver.search(time_limit=10, target_energy=0)
print("sol =", sol)
Output:
f = 16 -7*a -12*b -15*c +4*a*b +6*a*c +12*b*c
sol = Sol(energy=0, {a: 1, b: 0, c: 1})
Documentation
Metadata
Release files for pyqbpp 2026.10.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyqbpp-2026.10.11-py3-none-manylinux_2_31_x86_64.whl | Python 3 | none | Linux glibc 2.31+ x86-64 | Details |
| pyqbpp-2026.10.11-py3-none-manylinux_2_31_aarch64.whl | Python 3 | none | Linux glibc 2.31+ ARM64 | Details |
Total release size: 3.9 MB
Release files / pyqbpp-2026.10.11-py3-none-manylinux_2_31_x86_64.whl
| Download URL | pyqbpp-2026.10.11-py3-none-manylinux_2_31_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Linux glibc 2.31+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
860b3c40d2de8db5ea8ca3688c333cde6503768ca7231b9e0210737aa2129bea
|
|
BLAKE2b-256 checksum How to use checksums |
e7fd733ffa65ad76359e8bd7c7bec2c8d9c9d49f1b444e835457ca4d1ad51e11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|
Release files / pyqbpp-2026.10.11-py3-none-manylinux_2_31_aarch64.whl
| Download URL | pyqbpp-2026.10.11-py3-none-manylinux_2_31_aarch64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Linux glibc 2.31+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
8d89854948dbcf125676a73c54459c569c651e1a8d2f02b42575e24fc5f365a2
|
|
BLAKE2b-256 checksum How to use checksums |
d0d134a09bcc34d798a86e2664a5cc294565d2acabb3212ad376b61f0e9a90e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|
Security for pyqbpp 2026.10.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.