跳转到主要内容

Qiskit用于访问IBM Quantum的量子设备和模拟器

项目描述

Qiskit IBM Quantum Provider (现已弃用)

LicenseBuild Status


请注意: 自2023年1月发布的版本0.20.0起,qiskit-ibmq-provider 已被弃用,其支持将于该日期起3个月后结束,最终存档不会早于该日期。由 qiskit-ibmq-provider 提供的功能不会消失,而是已经拆分到单独的存储库中。请参阅下面的迁移指南部分以获取更多详细信息。我们鼓励您尽快迁移。


Qiskit 是一个开源SDK,可在电路、算法和应用模块级别与量子计算机交互。

此模块包含一个提供程序,可访问 IBM Quantum 系统和模拟器。

迁移指南

qiskit-ibmq-provider 提供的所有功能都已迁移到其他软件包

以前 当前软件包 详情 迁移指南
qiskit.providers.ibmq.experiment qiskit-ibm-experiment
(暂无文档)
与IBM Quantum实验数据库服务相关的功能。 指南
qiskit.providers.ibmq.runtime qiskit-ibm-runtime
(文档)
如果您希望获得高质量的概率分布或期望值,而不必自己优化电路或减轻结果,请使用此软件包。 指南
其余的 qiskit.providers.ibmq qiskit-ibm-provider
(文档)
如果您需要直接访问后端以进行设备特性化等实验,请使用此软件包。 指南

这些软件包可以单独安装(通过标准pip install命令,例如pip install qiskit-ibm-provider),并且不是Qiskit元软件包的一部分。

安装

我们鼓励您通过PIP工具(一个Python软件包管理器)安装Qiskit,它将安装所有Qiskit元素和组件,包括此组件。

pip install qiskit

PIP将为我们自动处理所有依赖项,并且您将始终安装最新(且经过良好测试)的版本。

要从源安装,请遵循贡献指南中的说明。

设置IBM量子提供程序

一旦安装了该软件包,您就可以从Qiskit访问提供程序。

注意:自2019年11月以来(以及此qiskit-ibmq-provider软件包的0.4版本和qiskit软件包的0.14版本),不再支持旧版量子体验或QConsole(v1)账户。如果您仍在使用v1账户,请按照更新说明中的步骤更新您的账户。

配置您的IBM量子凭证

  1. 通过访问IBM量子登录页面创建IBM量子账户或登录到您现有的账户。

  2. 从您的IBM量子账户页面复制(并/或可选地重新生成)您的API令牌。

  3. 从步骤2获取您的令牌,在此处称为MY_API_TOKEN,并运行

    from qiskit import IBMQ
    IBMQ.save_account('MY_API_TOKEN')
    

    上述命令将您的凭证本地存储在名为qiskitrc的配置文件中。默认情况下,此文件位于$HOME/.qiskit,其中$HOME是您的家目录。如果您仍在使用Qconfig.py,请删除该文件并运行上述命令。

访问您的IBM量子后端

调用IBMQ.save_account()后,您的凭证将存储在磁盘上。一旦存储,您可以在未来的任何时刻通过以下方式加载并使用它们在您的程序中

from qiskit import IBMQ

provider = IBMQ.load_account()
backend = provider.get_backend('ibmq_qasm_simulator')

或者,如果您不想将凭证保存到磁盘上,并且只想在当前会话中使用它们,您可以使用

from qiskit import IBMQ

provider = IBMQ.enable_account('MY_API_TOKEN')
backend = provider.get_backend('ibmq_qasm_simulator')

默认情况下,所有IBM量子账户都可以访问同一个公开项目(中心:ibm-q,组:open,项目:main)。为了方便起见,IBMQ.load_account()IBMQ.enable_account()方法将返回该项目的提供程序。如果您可以访问其他项目,您可以使用

provider_2 = IBMQ.get_provider(hub='MY_HUB', group='MY_GROUP', project='MY_PROJECT')

更新到新的IBM量子

自2019年11月以来(以及此qiskit-ibmq-provider软件包的0.4版本),IBM量子提供程序仅支持新的IBM量子,不再支持旧版量子体验和Qconsole账户。新的IBM量子也称为v2,而旧版和Qconsole称为v1

本节包括更新您的账户和程序的说明。请注意,

  • IBM量子体验v1凭证和为0.3版本之前编写的程序在0.3.x系列中仍将有效。从0.4版本开始,仅支持v2凭证,建议进行升级以利用新功能。
  • 更新您的IBM量子v2凭据意味着您需要更新您的程序。下文包含有关如何执行转换的说明。

更新您的IBM量子凭据

如果您在磁盘上存储了旧版量子体验或Qconsole的凭据,可以使用IBMQ.update_account()辅助程序。此辅助程序将读取您存储在磁盘上的当前凭据并尝试将其转换

from qiskit import IBMQ

IBMQ.update_account()
Found 2 credentials.
The credentials stored will be replaced with a single entry with token "MYTOKEN"
and the new IBM Quantum v2 URL (https://auth.quantum-computing.ibm.com/api).

In order to access the provider, please use the new "IBMQ.get_provider()" methods:

  provider0 = IBMQ.load_account()
  provider1 = IBMQ.get_provider(hub='A', group='B', project='C')

Note you need to update your programs in order to retrieve backends from a
specific provider directly:

  backends = provider0.backends()
  backend = provider0.get_backend('ibmq_qasm_simulator')

Update the credentials? [y/N]

确认后,您的凭据将被覆盖为有效的IBM量子v2凭据集。对于更复杂的情况,请考虑通过IBMQ.delete_accounts()删除之前的凭据,并按照IBM量子账户页面中的说明操作。

更新您的程序

新的IBM量子支持还引入了一种更结构化的方法来访问后端。之前,所有后端的访问都是通过以下方式集中进行的:

IBMQ.backends()
IBMQ.get_backend('ibmq_qasm_simulator')

从版本0.3开始,访问后端的首选方式是通过Provider访问您的一个项目,而不是直接通过全局IBMQ实例,从而允许对您使用的项目进行更细粒度的控制

my_provider = IBMQ.get_provider()
my_provider.backends()
my_provider.get_backend('ibmq_qasm_simulator')

在类似的精神下,您可以通过以下方式检查您有权访问的提供者:

IBMQ.providers()

此外,由于新的IBM量子只提供一组凭据,因此IBMQ中的账户管理方法现在采用单数形式。例如,您应使用IBMQ.load_account()而不是IBMQ.load_accounts()。如果您尝试使用旧方法与IBM量子v2账户一起使用,将引发IBMQAccountError异常。

以下表格包含两个版本之间差异的快速参考。请参阅每个方法的文档以获取更深入的信息。

账户管理

<0.3 / v1凭据 >=0.3和v2凭据
N/A IBMQ.update_account()
IBMQ.save_account(token, url) IBMQ.save_account(token)
IBMQ.load_accounts() provider = IBMQ.load_account()
IBMQ.enable_account() provider = IBMQ.enable_account()
IBMQ.disable_accounts() IBMQ.disable_account()
IBMQ.active_accounts() IBMQ.active_account()
IBMQ.stored_accounts() IBMQ.stored_account()
IBMQ.delete_accounts() IBMQ.delete_account()

使用后端

<0.3 / v1凭据 >=0.3和v2凭据
N/A providers = IBMQ.providers()
backend = IBMQ.get_backend(name, hub='HUB') provider = IBMQ.get_provider(hub='HUB')
backend = provider.get_backend(name)
backends = IBMQ.backends(hub='HUB') provider = IBMQ.get_provider(hub='HUB')
backends = provider.backends()

贡献指南

如果您想为IBM量子Provider做出贡献,请查看我们的贡献指南。此项目遵守Qiskit的行为准则。通过参与,您将遵守此准则。

我们使用GitHub问题来跟踪请求和错误。请使用我们的slack进行讨论和简单问题。要加入我们的Slack社区,请使用Qiskit.org上的邀请链接。对于更适合论坛的问题,我们使用Stack Exchange中的Qiskit标签。

下一步

现在您已经设置完毕,可以查看我们Qiskit教程存储库中的其他示例。

作者和引用

Qiskit IBM量子Provider是许多不同层级为项目做出贡献的人的成果。如果您使用Qiskit,请按照包含的BibTeX文件引用。

许可证

Apache License 2.0.

项目详细信息


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

qiskit-ibmq-provider-0.20.2.tar.gz (245.2 kB 查看散列值)

上传时间

构建分发

qiskit_ibmq_provider-0.20.2-py3-none-any.whl (241.5 kB 查看散列值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面