Qiskit 升级至 1.0 后,from qiskit import execute 将报错,因该函数已被正式移除;需改用 qiskit.primitives 中的 Sampler 或 Estimator,或通过 qiskit.transpiler.passes + qiskit.providers.backend.run() 手动执行电路。
qiskit 升级至 1.0 后,`from qiskit import execute` 将报错,因该函数已被正式移除;需改用 `qiskit.primitives` 中的 `sampler` 或 `estimator`,或通过 `qiskit.transpiler.passes` + `qiskit.providers.backend.run()` 手动执行电路。
在 Qiskit 1.0 及更高版本中,原有的顶层 execute() 函数(常用于快速运行量子电路)已被彻底移除,这是 Qiskit 架构重构的核心变化之一:模块职责更清晰、执行逻辑更显式、后端交互更标准化。
✅ 推荐替代方案(面向大多数用户)
使用 qiskit.primitives.Sampler(获取测量采样结果)或 Estimator(计算可观测量期望值):
from qiskit import QuantumCircuit
from qiskit.primitives import Sampler
from qiskit_ibm_runtime import QiskitRuntimeService
# 构建简单电路
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
# 方式1:本地模拟(无需 IBM 账户)
sampler = Sampler()
job = sampler.run(qc, shots=1024)
result = job.result()
print(result.quasi_dists[0]) # 输出近似概率分布
# 方式2:在 IBM 量子设备/模拟器上运行(需先登录)
# service = QiskitRuntimeService(channel="ibm_quantum")
# backend = service.backend("ibmq_qasm_simulator")
# sampler = Sampler(backend)
⚠️ 注意事项
- 不再支持 execute(qc, backend, shots=1024) 这类简洁调用,请勿尝试降级 Qiskit 回 0.x 版本(已停止维护且不兼容新 API);
- 若依赖旧教程或书籍代码,请同步查阅 Qiskit 1.0 迁移指南;
- qiskit.compiler.transpile() 和 qiskit.providers.backend.run() 仍可用,但需手动处理编译、绑定参数、提交作业等步骤,适合高级定制场景。
? 总结:execute 的移除不是功能削弱,而是向可复现、可扩展、可验证的量子工作流演进的关键一步。拥抱 primitives 模块,是编写健壮、可移植 Qiskit 应用的正确起点。










