Qiskit/qiskit
机器学习用于构建、转译和模拟量子线路的 Python/C SDK,面向量子计算研究与教学。
项目介绍
Qiskit 是量子计算的核心 SDK,工作对象是扩展量子线路、算符和原语。它提供构造量子线路、定义可观测量、运行 Sampler 或 Estimator 流程的基础组件;转译器可按目标设备的基门和量子比特连接关系重写线路;量子信息工具箱用于构造和操作更复杂的算符。主要接口是 Python API,C API 则把 Rust 内部数据模型暴露为共享库,或用于编写 Python 扩展模块。适合量子计算研究者、学生和开发者编写与模拟量子程序。
安装
Python 包可直接用 pip 安装:
pip install qiskit
pip 会自动处理依赖并安装最新版本。从源码安装可参考官方源码安装指南。独立 C 库目前只能从源码构建,需要 Rust 编译器和 GNU Make,执行 make c 后会在 dist/c 下生成共享库和头文件;具体见 C API 安装指南。
第一个线路与 Sampler、Estimator
先构造线路,加上测量,再用状态向量 Sampler 采样:
import numpy as np
from qiskit import QuantumCircuit
qc = QuantumCircuit(3)
qc.h(0)
qc.p(np.pi / 2, 0)
qc.cx(0, 1)
qc.cx(0, 2)
qc_measured = qc.measure_all(inplace=False)
from qiskit.primitives import StatevectorSampler
sampler = StatevectorSampler()
result = sampler.run([qc_measured], shots=1000).result()
print(result[0].data['meas'].get_counts())
若要估计期望值,则不要加测量,把 SparsePauliOp 传给 StatevectorEstimator:
from qiskit.quantum_info import SparsePauliOp
from qiskit.primitives import StatevectorEstimator
operator = SparsePauliOp.from_list([("XXY", 1), ("XYX", 1), ("YXX", 1), ("YYY", -1)])
estimator = StatevectorEstimator()
result = estimator.run([(qc, operator)], precision=1e-3).result()
print(result[0].data.evs)
状态向量原语是本地模拟器,适合小线路和测试,无法扩展到经典计算机难以模拟的规模。若要把线路映射到硬件,需要定义带基门和耦合图的 Target,再调用 transpile;README 中给出了映射到 ["cz", "sx", "rz"] 和线性链路的示例。
在真实硬件上运行
Qiskit 通过 BaseSamplerV2 和 BaseEstimatorV2 定义运行时接口。IBM 设备有 qiskit-ibm-runtime;其他厂商通过 BackendV2 提供后端,包括 IonQ、AQT、Braket、Quantinuum 和 Rigetti 等社区或厂商包。访问方式、凭据和预处理细节因供应商而异,需要查看各自文档。
使用约束与许可证
仅使用 Python 包时只需 pip 安装;C API 需要从源码构建并具备 Rust 工具链。基于模拟器的原语只适合经典可模拟的线路规模。使用真实硬件需要安装对应供应商包、拥有账号并具备后端访问权限。项目采用 Apache-2.0 许可证。每个 GitHub 版本会动态生成变更日志,详细发布说明另行发布。
HotRepo 点评
Qiskit 在 2026-11-12 的 Python 日榜上以第 15 名出现,当天新增 3 颗 Star;2025-11-26 的 Hacker News 讨论获得 43 分和少量评论。讨论中有人推荐用它探索量子思想实验和学习量子物理,也有人提到通过社区 provider 连接非 IBM 硬件,同时指出不同厂商的 provider 质量参差。该仓库是长期维护的核心 SDK,价值主要在量子线路层和供应商抽象层,而不只在本地模拟器。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。