3

我正在学习如何使用 qiskit,并且正在使用 jupyter notebook,但是每次我尝试使用属性 draw 来可视化电路时,都会收到此错误:

import qiskit
from qiskit import *
from qiskit import IBMQ
qr = QuantumRegister(2)
cr = ClassicalRegister(2)
circuit = QuantumCircuit(qr, cr)
%matplotlib inline
circuit.draw(output='mpl')
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-8-bd220039ee1c> in <module>
----> 1 circuit.draw(output='mpl')

AttributeError: module 'qiskit.circuit' has no attribute 'draw'

我也尝试应用 Hadamard 门,我得到:

circuit.h(qr(0))
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-59-c8b4318b743b> in <module>
----> 1 circuit.h(qr(0))

AttributeError: module 'qiskit.circuit' has no attribute 'h'
4

2 回答 2

0

为您的电路变量尝试另一个名称,现在 python 认为您希望 qiskit.circuit 模块绘制一些东西。QuantumCircuit 对象是具有绘制方法的对象。如果你同时调用这两个对象,你可以在这里看到这两个对象,注意我在 QuantumCircuit 中放置了一个量子位和经典位,只是每个示例,你不需要这里的点,这只是为了让它更清楚,只是运行电路和 QuantumCircuit( 1,1) 分别会产生相同的结果。

qiskit.circuit 和 qiskit.QuantumCircuit 的区别

如果您尝试使用不同的变量名,您会得到想要的结果: 画一个量子电路

当我尝试使用变量名称电路时,它对我有用,但尝试使用描述性变量名称,这些名称也永远不会与您导入的包中的模块或类混淆。

您所有的导入语句也可以合并为 1:

from qiskit import *

星号允许您从 qiskit 导入所有内容,包括 IBMQ。它可以帮助您节省一两行。

于 2021-09-02T04:24:21.233 回答
0

似乎有名称冲突。它正在circuit代替from qiskit import circuit.circuit = ...

您可能只需要重新启动您的笔记本内核。

于 2020-11-06T01:43:49.580 回答