Не удается импортировать Aer из Qiskit 0.7 - PullRequest
0 голосов
/ 26 декабря 2018

Я создал новую виртуальную среду в 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.Так что я думаю, что это должно быть что-то с Anaconda, а не с Qiskit.

EDIT 2 : Я сделал чистую установку Python (без Anaconda), и проблема сохраняется.

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Действительно, у меня тоже была та же проблема: 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/., а затем скопировать его в папку site-packages.Вы знаете, что получили нужную папку, когда находите файлы с именами

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

Travis CI python> = 3.5 image

Здесь, с другой стороны, я был в растерянности с тем же объяснением (и решением), поэтому я посмотрел на установку .travis репозитория qiskit-aer.Здесь вы видите, что они используют (среди других директив) - sudo apt-get -y install g++-7 - sudo apt-get -y install libopenblas-dev Я использовал это для моего travis CI и - вуаля - это работает.До этого я использовал ldd и readelf, и он указывал на какую-то библиотеку, которую я не помню, но кажется, что от этого зависит qiskit-aer, и вы получите это с более поздней версией g ++.

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

0 голосов
/ 27 декабря 2018

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

...