Не удается импортировать Aer из Qiskit 0.7

Я создал новую виртуальную среду в Anaconda и установил несколько пакетов, используя pip (а именно, numpy, scipy, matplotlib, qiskit и, возможно, еще 1 или 2). Я открываю интерпретатор и пытаюсь импортировать модуль из Qiskit:

from qiskit import Aer

В результате я получаю ImportError: cannot import name 'Aer', Насколько я понимаю, либо Qiskit 0.7 имеет другую структуру модулей (которую я нигде не могу найти в документации), либо что моя установка имеет какой-то конфликт. Как узнать, в чем дело и как это исправить?

РЕДАКТИРОВАТЬ: у меня есть система двойной загрузки. Проблема возникает в Anaconda на Windows 10, но не на Ubuntu 18 на чистом Python. Так что я думаю, что это должно быть что-то с Анакондой, а не с Qiskit.

РЕДАКТИРОВАТЬ 2: Я сделал чистую установку Python (без Anaconda), и проблема остается.

6 ответов

У меня такая же проблема. Я посмотрел на репозиторий на GitHub qiskit terra ( https://github.com/Qiskit/qiskit-terra) и в примерах они используют BasicAer. Итак, я считаю, что они переименованы в модуль.

Действительно, у меня также была та же проблема: Anaconda 3 на Windows 10. У меня позже были те же проблемы на образе сборки travis CI python 3.5 и 3.6. Для обоих у меня было похожее, но разное решение. Сходство заключается в том, что, похоже, отсутствует зависимость. Код симулятора написан на C++ или, может быть, сейчас Cython. Поэтому они используют некоторые зависимости, которых может не быть в вашей настройке. На этом сходство закончилось. Что я сделал:

Настройка Windows 10 / Anaconda

С помощью обходчика зависимостей 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++-7 - sudo apt-get -y install libopenblas-devЯ использовал это для моего travis CI и - вуаля - это работает. До этого я пользовался ldd а также readelf и он указал на какую-то библиотеку, которую я не помню, но похоже, что от этого зависит qiskit-aer, и вы получите это с более свежей версией g++.

Интересно, решит ли это ваши проблемы?

Попробуйте следующее:

from qiskit.providers.aer import Aer 

Чтобы решить эту проблему, попробуйте импортировать Aer отдельно. Например:

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

Надеюсь, это ответит на ваш вопрос

Чтобы решить эту проблему, я установил qiskit-aer.

      pip install qiskit qiskit-aer

А затем импортируйте через него Aer.

      from qiskit_aer.aerprovider import AerSimulator

Это, вероятно, проблема между pip install qiskit==0.27.0а также conda install qiskit==0.27.0что conda (или jupyter) не может использовать qiskit, который установлен непосредственно в pip. Поэтому я предлагаю вам переустановить в conda.

Другие вопросы по тегам