3

我在 Anaconda 中创建了一个新的虚拟环境,并使用 pip 安装了几个包(即 numpy、scipy、matplotlib、qiskit 以及可能还有 1 或 2 个)。我打开解释器并尝试从 Qiskit 导入一个模块:

from qiskit import Aer

结果,我得到ImportError: cannot import name 'Aer'. 我的理解是 Qiskit 0.7 的模块结构不同(我在文档中的任何地方都找不到),或者我的设置存在某种冲突。我怎么知道是什么情况以及如何解决?

编辑:我有一个双引导系统。该问题出现在 Windows 10 上的 Anaconda 上,但不会出现在纯 Python 上的 Ubuntu 18 上。所以我认为它必须是 Anaconda 而不是 Qiskit。

编辑 2:我已经全新安装了 Python(没有 Anaconda),问题仍然存在。

4

5 回答 5

4

我有同样的问题。我查看了 qiskit terra ( https://github.com/Qiskit/qiskit-terra ) 的 GitHub 上的存储库,在他们使用 BasicAer 的示例中。所以,我认为他们重命名为模块。

于 2018-12-27T07:38:20.550 回答
2

事实上,我也遇到了同样的问题:Windows 10 上的 Anaconda 3。后来我在 travis CI python 3.5 和 3.6 构建映像上遇到了同样的问题。对于两者,我都有一个相似但不同的解决方案。相似之处在于它似乎是一个缺失的依赖项。模拟器的代码是用 C++ 或现在的 Cython 编写的。所以他们使用了一些你的设置可能没有的依赖项。相似之处到此结束。我做了什么:

Windows 10 / Anaconda 设置

使用依赖walker http://www.dependencywalker.com/我发现openblas.dll 作为依赖项丢失了。有趣的是,qiskit 团队在旧版模拟器中提供了一个。所以你可以使用这个或者从https://www.openblas.net/下载(并重命名!!)最新的二进制文件。然后将其复制到您的站点包文件夹中。当您找到具有排序名称的文件时,您就知道您找到了正确的文件夹

  • unitary_controller_wrapper.pyd
  • statevector_controller_wrapper.pyd
  • qasm_controller_wrapper.pyd

Travis CI python >= 3.5 图像

另一方面,我对相同的解释(和解决方案)不知所措,所以我查看了 qiskit-aer 存储库的.travis设置。在这里,您会看到,他们使用(在其他指令中)--sudo apt-get -y install g++-7sudo apt-get -y install libopenblas-dev 将其用于我的 travis CI 并且-瞧-它有效。在此之前,我使用了ldd并且readelf它指向了一些我不记得的库,但似乎 qiskit-aer 依赖于它,你可以使用更新版本的 g++ 来获得它。

我想知道这是否会解决您的问题。

于 2019-01-20T10:56:14.160 回答
1

尝试以下操作:

from qiskit.providers.aer import Aer 
于 2020-08-08T09:04:58.220 回答
1

要解决此问题,请尝试单独导入 Aer。例如:

from qiskit import QuantumCircuit, QuantumRegister, execute, Aer, IBMQ

我希望这回答了你的问题

于 2020-04-12T15:04:19.243 回答
1

conda(或jupyter)无法使用直接安装在pip中的qiskitpip install qiskit==0.27.0可能是问题。conda install qiskit==0.27.0因此,我建议您应该在 conda 中重新安装。

于 2021-07-20T00:56:01.330 回答