
Qiskit 1.0 起,qiskit.Aer 已被移除,需改用独立包 qiskit_aer 直接导入;本文详解兼容性变更、正确安装步骤及环境排查方法。
qiskit 1.0 起,`qiskit.aer` 已被移除,需改用独立包 `qiskit_aer` 直接导入;本文详解兼容性变更、正确安装步骤及环境排查方法。
在 Qiskit 1.0 及更高版本中,模块架构发生重大重构:Aer 不再作为 qiskit 主包的子模块存在,而是完全拆分为独立安装、独立导入的 qiskit-aer 包。因此,执行 from qiskit import Aer 会必然失败,并抛出 cannot import name 'aer' from 'qiskit' 错误——这不是环境问题,而是 API 设计变更所致。
✅ 正确做法是:直接从 qiskit_aer 导入所需组件,无需经过 qiskit 命名空间。例如:
# ✅ 正确(Qiskit 1.0+ 推荐写法) from qiskit_aer import AerSimulator, Aer from qiskit_aer.noise import NoiseModel # 示例:使用 AerSimulator 运行电路 from qiskit import QuantumCircuit qc = QuantumCircuit(2) qc.h(0) qc.cx(0, 1) qc.measure_all() simulator = AerSimulator() result = simulator.run(qc).result() print(result.get_counts())
⚠️ 注意事项:
- ❌ 不要再尝试 from qiskit import Aer 或 import qiskit.Aer —— 这些在 Qiskit ≥1.0 中已彻底废弃;
- ✅ qiskit_aer 是“drop-in replacement”,所有功能接口(如 AerSimulator, StatevectorSimulator)保持向后兼容,仅导入路径不同;
- ? 若你正在 IBM Quantum Lab(或 Jupyter 环境),请确保在 notebook 单元中运行升级命令并重启内核:
!pip install --upgrade qiskit qiskit-aer
? 提示:IBM Quantum Lab 默认预装 Qiskit 1.x,但可能未同步更新 qiskit-aer。务必显式升级两者,避免版本不匹配(如 qiskit==1.2 + qiskit-aer==0.14 将导致兼容性错误)。
? 环境验证(推荐执行):
若仍报错,请确认当前 Python 环境是否与 pip 安装目标一致:
import sys
print("Python executable:", sys.executable)
import subprocess
subprocess.run([sys.executable, "-m", "pip", "show", "qiskit-aer"])
输出应显示 qiskit-aer 版本 ≥ 1.0(如 1.3.0),且 Location 路径与 sys.executable 所在环境一致。
? 总结:
Qiskit 1.0 的模块解耦提升了可维护性与扩展性,Aer 的独立化是这一演进的关键一步。只需调整导入语句、确保 qiskit-aer 升级至 1.0+,即可无缝迁移。所有官方教程与 API 文档(如 Qiskit Migration Guide)均已按此规范更新,建议以 qiskit_aer 为唯一权威导入源。










