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

Qiskit库问题:上周可用的量子计算代码当前无法运行求助

问题描述

这段量子计算代码上周还能正常运行,已确认pip安装命令为最新版本且环境配置正确。在Windows和MacOS系统间交替开发该代码,这或许是问题诱因之一?请问代码为何无法运行?

注: 已隐去敏感的provider信息,并非全部是X。

import numpy as np
from collections import defaultdict
from qiskit import Aer
from qiskit.visualization import plot_histogram
from qiskit.utils import QuantumInstance
from qiskit.algorithms import Grover, AmplificationProblem
from qiskit.circuit.library import PhaseOracle
from qiskit.compiler import transpile
from qiskit import assemble
from qiskit import IBMQ
from qiskit import execute
from qiskit.tools import job_monitor
import matplotlib.pyplot as plt
IBMQ.save_account('xxxxxxx', overwrite=True)
IBMQ.load_account()
provider = IBMQ.get_provider(hub='xxxx', group='xxxx', project='xxxx')
device = provider.get_backend('ibmq_kolkata')
circuit_list = []
verification_list = []

报错信息:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
~\AppData\Roaming\Python\Python38\site-packages\qiskit\__init__.py in __getattr__(self, attr)
    147             try:
---> 148                 from qiskit.providers import ibmq
    149 

~\anaconda3\envs\qc_env\lib\site-packages\qiskit\providers\ibmq\__init__.py in <module>
     85 
----> 86 from qiskit.providers import BaseBackend, Backend  # type: ignore[attr-defined]
     87 

ImportError: cannot import name 'BaseBackend' from 'qiskit.providers' (C:\Users\Ahmad\AppData\Roaming\Python\Python38\site-packages\qiskit\providers\__init__.py)

The above exception was the direct cause of the following exception:

MissingOptionalLibraryError               Traceback (most recent call last)
<ipython-input-2-63cbbaf81b4b> in <module>
     14 import matplotlib.pyplot as plt
     15 #import mapomatic as mm
---> 16 IBMQ.save_account('xxxxxxx', overwrite=True)
     17 IBMQ.load_account()
     18 #provider = IBMQ.get_provider(hub = 'ibm-q')

~\AppData\Roaming\Python\Python38\site-packages\qiskit\__init__.py in __getattr__(self, attr)
    150                 self.ibmq = ibmq.IBMQ
    151             except ImportError as ex:
---> 152                 raise MissingOptionalLibraryError(
    153                     "qiskit-ibmq-provider", "IBMQ provider", "pip install qiskit-ibmq-provider"
    154                 ) from ex

MissingOptionalLibraryError: "The 'qiskit-ibmq-provider' library is required to use 'IBMQ provider'. You can install it with 'pip install qiskit-ibmq-provider'."
问题分析与解决方案

核心原因

  • Qiskit版本不兼容:报错里的ImportError: cannot import name 'BaseBackend'说明qiskit-ibmq-provider和核心qiskit版本不匹配。Qiskit新版本中BaseBackend已被重构或移除,但你的qiskit-ibmq-provider仍在尝试导入这个旧类。
  • 跨环境依赖混乱:在Windows和MacOS间交替开发时,两个环境的Qiskit依赖包版本可能不一致,或者某次更新只在一个环境完成,导致版本冲突。

解决步骤

1. 修复版本不兼容问题

先卸载现有相关包,再安装版本匹配的组合:

pip uninstall -y qiskit qiskit-ibmq-provider
# 安装完整Qiskit包(自动匹配所有依赖版本)
pip install qiskit[all]
# 或指定兼容版本(示例版本,可根据官方文档调整)
pip install qiskit==0.45.0 qiskit-ibmq-provider==0.20.2

2. 统一跨环境依赖

  • 在其中一个正常运行的环境导出依赖清单:
    pip freeze > requirements.txt
    
  • 在另一个环境使用清单安装,确保依赖完全一致:
    pip install -r requirements.txt
    

3. 清理导入路径冲突

报错显示qiskit包同时存在于用户目录的Python包路径和conda环境路径中,这会导致导入混乱。需:

  • 清理其中一个路径下的Qiskit相关文件;
  • 确保激活conda环境时,优先使用环境内的包(避免系统级Python包干扰)。

内容的提问来源于stack exchange,提问作者Ahmad Bennakhi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:15:38