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

在Qiskit中运行Shor算法时遭遇ImportError导入错误

问题原因及解决办法

错误原因

这个导入错误源于Qiskit版本迭代后的模块结构调整:

  • 从Qiskit 0.45.0版本开始,原qiskit.algorithms模块中的Shor等算法被拆分到独立的qiskit_algorithms包中,核心Qiskit包不再包含这些算法实现。
  • 若你安装的是较新的Qiskit版本,直接从qiskit.algorithms导入Shor必然会失败。

解决办法

方案1:适配新版生态(推荐)

  1. 安装独立的算法包:
    在终端运行以下命令:
    pip install qiskit-algorithms
    
  2. 修改代码中的导入语句:
    将原来的from qiskit.algorithms import Shor替换为:
    from qiskit_algorithms import Shor
    
    同时,若使用QuantumInstance,新版中它被移到了qiskit_algorithms.utils,需要同步修改导入:
    from qiskit_algorithms.utils import QuantumInstance
    
    完整修改后的代码示例:
    from qiskit import Aer
    from qiskit_algorithms import Shor
    from qiskit_algorithms.utils import QuantumInstance
    
    N = 15
    backend = Aer.get_backend('aer_simulator')
    quantum_instance = QuantumInstance(backend, shots=1024)
    shor = Shor(quantum_instance=quantum_instance)
    result = shor.factor(N)
    print(f"The list of factors of {N} as computed by Shor's algorithm is {result.factors[0]}.")
    
    更推荐使用新版的Sampler替代QuantumInstance,代码如下:
    from qiskit import Aer
    from qiskit_algorithms import Shor
    from qiskit.primitives import Sampler
    
    N = 15
    sampler = Sampler(backend=Aer.get_backend('aer_simulator'))
    shor = Shor(sampler=sampler)
    result = shor.factor(N)
    print(f"The list of factors of {N} as computed by Shor's algorithm is {result.factors[0]}.")
    

方案2:回退到旧版Qiskit(不推荐)

如果不想修改代码,可以回退到0.44.x版本(该版本中Shor仍在qiskit.algorithms下):

pip uninstall qiskit -y
pip install qiskit==0.44.0

注意:旧版本不再接收更新,可能存在安全隐患和功能缺失。

内容的提问来源于stack exchange,提问作者Anita Pandey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:45:31