You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何出现Qiskit错误代码:'qr'未定义?

解决Qiskit中'qr'未定义的问题

这个错误确实是Qiskit版本迭代导致的——旧版(0.x系列)会默认预定义qr这类变量,但1.x及以上的新版本已经取消了这种默认设置,必须手动创建量子寄存器。

给你几个具体的解决步骤:

  • 先确认你的Qiskit版本
    运行以下代码查看版本:

    import qiskit
    print(qiskit.__version__)
    

    如果输出是1.x或更高,就按下面的方法处理。

  • 手动创建量子寄存器
    有两种常用方式:

    1. 单独创建量子寄存器:
      from qiskit import QuantumRegister
      # 创建一个包含2个量子比特的寄存器,变量名设为qr
      qr = QuantumRegister(2)
      # 搭配经典寄存器使用的话
      from qiskit import ClassicalRegister
      cr = ClassicalRegister(2)
      # 构建电路
      from qiskit import QuantumCircuit
      qc = QuantumCircuit(qr, cr)
      
    2. 更简洁的写法(新版本推荐):
      直接用QuantumCircuit创建,它会自动生成量子/经典寄存器,不需要单独定义qr:
      from qiskit import QuantumCircuit
      # 创建含2个量子比特、2个经典比特的电路
      qc = QuantumCircuit(2, 2)
      # 后续需要引用量子比特时,直接用索引,比如qc.h(0)
      
  • 适配旧教程代码
    如果教程里的代码直接用qr,把所有qr替换成你自己定义的寄存器变量,或者改成上面的简洁写法。比如旧教程里的qc.h(qr[0]),改成qc.h(0)就能正常运行。

  • 注意导入方式
    不要只写import qiskit,这样很多模块需要用qiskit.xxx调用,不如按需导入更方便,比如:

    from qiskit import QuantumCircuit, Aer, execute
    

内容的提问来源于stack exchange,提问作者Sasha Chugunov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 17:17:06