无法从 Qiskit 0.7 导入 Aer

问题描述 投票:0回答:6

我在 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),但问题仍然存在。

python python-import qiskit
6个回答
4
投票

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


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/ 下载(并重命名!!)最新的二进制文件。然后将其复制到您的 site-packages 文件夹中。当您找到具有此类名称的文件时,您就知道您找到了正确的文件夹

  • 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++-7
-
sudo apt-get -y install libopenblas-dev
我将它用于我的 travis CI,并且 - 瞧 - 它有效。在此之前,我使用过
ldd
readelf
,它指向了一些我不记得的库,但看起来 qiskit-aer 依赖于它,你可以使用更新版本的 g++ 来获得它。

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


1
投票

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

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

我希望这能回答你的问题


1
投票

尝试以下操作:

from qiskit.providers.aer import Aer 

1
投票

可能是

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


0
投票

我解决这个问题的方法是安装qiskit-aer。

pip install qiskit qiskit-aer

然后通过它导入 Aer。

from qiskit_aer.aerprovider import AerSimulator
© www.soinside.com 2019 - 2024. All rights reserved.