Quantum Inspire平台的sdk

quantuminspire的Python项目详细描述


Quantum Inspire软件开发包

注意:此sdk作为公共测试版提供,请报告任何 github问题跟踪器中的问题或错误。

Quantum Inspire平台允许使用cqasm语言执行量子算法。

Quantum Inspire平台的软件开发工具包(sdk)包括:

有关Quantum Inspire的更多信息,请参见 https://www.quantum-inspire.com/。详细信息 关于cqasm可以在量子激发中找到 knowledge base

安装

quantum inspire sdk可以通过pip从pypi安装:

$ pip install quantuminspire

此外,要通过Qiskit或ProjectQ使用Quantum Inspire,请安装 Qiskit和ProjectQ软件包:

$ pip install qiskit
$ pip install projectq

从源安装

sdk的源代码也可以在github上找到。对于默认安装,请执行:

$ git clone https://github.com/QuTech-Delft/quantuminspire
$ cd quantuminspire
$ pip install .

这不会安装ProjectQ或Qiskit,但会安装Quantum Inspire后端 那些项目。

如果要将特定的sdk作为依赖项包括在内,请使用 (例如,对于projectq后端):

$ pip install .[projectq]

要同时安装projectq和qiskit作为依赖项:

$ pip install .[qiskit,projectq]

运行

例如用法,请参见docs/目录中的python脚本和jupyter笔记本 从源或share/doc/quantuminspire/examples/目录安装时 库根(python的sys.prefix用于系统安装;site.user_base用于用户 安装)从pypi安装时。

例如,要在从源安装后运行ProjectQ示例笔记本:

cd docs
jupyter notebook example_projectq.ipynb

或者从python脚本对projectq后端执行grover:

cd docs
python example_projectq_grover.py

Binder

浏览和运行可用笔记本的另一种方法是单击上面的“启动活页夹”按钮。

也可以通过quantuminspireapi对象使用api 直接的。这是给真正了解自己的高级用户的 正在做。quantuminspireapi类的目的是 作为现有SDK的一个薄层,如Sjutsq和QISKIT, 主要不是一般用途。你可能想探索一下 如果您打算为现有SDK编写一个新的后端。

使用 API包装器直接:

fromgetpassimportgetpassfromcoreapi.authimportBasicAuthenticationfromquantuminspire.apiimportQuantumInspireAPIprint('Enter mail address')email=input()print('Enter password')password=getpass()server_url=r'https://api.quantum-inspire.com'authentication=BasicAuthentication(email,password)qi=QuantumInspireAPI(server_url,authentication)qasm='''version 1.0qubits 2H q[0]CNOT q[0], q[1]display'''backend_type=qi.get_backend_type_by_name('QX single-node simulator')result=qi.execute_qasm(qasm,backend_type=backend_type,number_of_shots=1024)print(result['histogram'])

为Quantum Inspire配置令牌凭据

  1. 如果您还没有Quantum Inspire帐户,请创建一个帐户。
  2. 从Quantum Inspire网站获取API令牌。
  3. 使用API令牌运行:
fromquantuminspire.credentialsimportsave_accountsave_account('YOUR_API_TOKEN')

调用save_account()后,您的凭据将存储在磁盘上。 不想将凭据保存到磁盘的用户应改为使用:

fromquantuminspire.credentialsimportenable_accountenable_account('YOUR_API_TOKEN')

令牌将只对会话有效。

在会话中调用save_account()或enable_account()后,令牌身份验证将自动完成 创建Quantum Inspire API对象时。

对于Qiskit用户,这意味着:

fromquantuminspire.qiskitimportQIQI.set_authentication()

projectq用户可以执行如下操作:

fromquantuminspire.apiimportQuantumInspireAPIqi=QuantumInspireAPI()

要使用存储的令牌创建令牌身份验证对象,请执行以下操作:

fromquantuminspire.credentialsimportget_token_authenticationauth=get_token_authentication()

然后可以使用这个auth初始化Quantum Inspire API对象。

已知问题

  • 一些测试用例调用受保护的方法
  • 量子激发平台的已知问题和常见问题 可以在FAQ中找到。

错误报告

请提交错误报告on the github issue tracker

测试

运行所有单元测试并使用:

coverage run --source="./src/quantuminspire" -m unittest discover -s src/tests -t src -v
coverage report -m

如果在运行时遇到与tests.quantuminspire相关的导入错误 在apip install -e .之后执行上述命令,作为解决方法,您应该删除 安装程序包tests较旧版本的marshmallow-polyfield(qiskit 依赖关系):

rm -Rf env/lib/python3.6/site-packages/tests

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaPax考试:从非标准Maven存储库解析Karaf特性存储库(XML文件)   java Spring启动Bean创建异常   java中将ArrayList转换为数组的方法   Android Studio的java Unity插件。   java在CheckStyle中从方法计数中排除getter和setter   HibernateJava。sql。SQLSyntaxErrorException:表/视图“序列”不存在   与命令行程序Java vs C通信   java WebView膨胀异常   java在O(n)java8流中寻找两个列表的交集   java使用Gradle运行单元测试时,最大堆大小在哪里设置?   ssl加载java应用程序(CXF)内的jks文件   CI:Jenkins Git:Simple Java项目:希望在特定时间在脚本上发送消息   java根据位置更改数字   java按数值排序字符串数组   macos java版本“1.6.0_65”是否与java 6模棱两可?   Cassandra中的java时间戳