環境
win10,python3.7
>>>import qiskit >>>qiskit.__qiskit_version__ {'qiskit-terra': '0.9.0', 'qiskit-ignis': '0.2.0', 'qiskit': '0.12.0', 'qiskit-aer': '0.3.0', 'qiskit-ibmq-provider': '0.3.2', 'qiskit-aqua': '0.6.0'}
エラー内容
Qiskit.Aquaのモジュールをimportしようとしたら,以下のようなエラーが出ました.
>>> from qiskit.aqua.algorithms.quantum_algorithm.QuantumAlgorithm import Shor --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-8-f455b2b00a46> in <module> ----> 1 from qiskit.aqua.algorithms.quantum_algorithm.QuantumAlgorithm import Shor d:\programming\qiskit\qiskitenv\lib\site-packages\qiskit\aqua\__init__.py in <module> 27 register_pluggable, 28 deregister_pluggable) ---> 29 from .utils.backend_utils import (get_aer_backend, 30 get_backends_from_provider, 31 get_backend_from_provider, d:\programming\qiskit\qiskitenv\lib\site-packages\qiskit\aqua\utils\__init__.py in <module> 25 split_dataset_to_data_and_labels, 26 map_label_to_class_name, reduce_dim_to_via_pca) ---> 27 from .qp_solver import optimize_svm 28 from .circuit_factory import CircuitFactory 29 from .circuit_cache import CircuitCache d:\programming\qiskit\qiskitenv\lib\site-packages\qiskit\aqua\utils\qp_solver.py in <module> 16 17 import numpy as np ---> 18 from cvxopt import matrix, solvers 19 20 logger = logging.getLogger(__name__) d:\programming\qiskit\qiskitenv\lib\site-packages\cvxopt\__init__.py in <module> 48 along with this program. If not, see <http://www.gnu.org/licenses/>.""" 49 ---> 50 import cvxopt.base 51 52 def copyright(): ImportError: DLL load failed: 指定されたモジュールが見つかりません。
エラーを見てみると,cvxopt.base
のimport に失敗していることが分かります.
原因・解決
調べたところ,cvxopt
はnumpy+mklがないと使えないそうでした.
anacondaの環境だと初めから入っているそうですが,私のはvenvの環境だったのでただのnumpyが入っていました.
ということで もともと入っていたnumpyはアンインストールして,次のページ
Python Extension Packages for Windows - Christoph Gohlke
にある numpy‑1.17.2+mkl‑cp37‑cp37m‑win_amd64.whl
をダウンロードしてpip
インストールしました.
無事 numpy+mklがインストールされたあと,Qiskit.Aquaのモジュールを問題なくimportできるようになりました.
参考
python 3.x - import cvxopt.base: the specified module could not be found - Stack Overflow