
Qiskit 1.0 版本重构了模块结构,Aer 不再作为子模块存在于 qiskit 主包中,需改用独立包 qiskit_aer 导入,否则将报错 module 'qiskit' has no attribute 'Aer'。
qiskit 1.0 版本重构了模块结构,`aer` 不再作为子模块存在于 `qiskit` 主包中,需改用独立包 `qiskit_aer` 导入,否则将报错 `module 'qiskit' has no attribute 'aer'`。
自 Qiskit 1.0(2024 年 5 月正式发布)起,项目完成了重大模块解耦:原集成在 qiskit 包中的仿真器核心 Aer 已完全拆分为独立安装、独立导入的 qiskit_aer 包。这意味着即使你已执行 pip install qiskit,也不会自动安装或暴露 qiskit.Aer——该属性已被移除,直接访问将触发 AttributeError。
✅ 正确做法如下:
-
确保安装 qiskit_aer(单独安装,不依赖 qiskit 主包):
!pip install qiskit-aer
⚠️ 注意:包名是 qiskit-aer(带短横线),而 Python 导入名是 qiskit_aer(下划线)。Colab 中建议使用 !pip install --upgrade qiskit-aer 以获取最新稳定版。
-
更新导入语句:
❌ 错误(Qiskitfrom qiskit import Aer # AttributeError! simulator = Aer.get_backend('aer_simulator')✅ 正确(Qiskit 1.0+ 标准写法):
from qiskit_aer import Aer # ✅ 从独立包导入 from qiskit import QuantumCircuit # 构建电路 qc = QuantumCircuit(2) qc.h(0) qc.cx(0, 1) qc.measure_all() # 获取并运行仿真器 simulator = Aer.get_backend('aer_simulator') result = simulator.run(qc).result() print(result.get_counts()) -
补充说明:
- 若你同时使用 qiskit-ibm-runtime 或 qiskit-ibm-provider,它们与 qiskit_aer 完全兼容,无需额外适配;
- qiskit 主包(v1.0+)现已仅保留核心框架(如 QuantumCircuit, Transpiler, PassManager 等),所有硬件/仿真后端均通过专用扩展包提供;
- 可通过 import qiskit; print(qiskit.__version__) 和 import qiskit_aer; print(qiskit_aer.__version__) 分别验证版本,推荐保持二者均为 ≥1.0.x。
? 总结:这不是环境配置问题,而是 Qiskit 1.0 的有意设计变更。只需两步——安装 qiskit-aer + 改写 from qiskit_aer import Aer ——即可彻底解决该错误,并使代码符合当前 Qiskit 生态的最佳实践。










