Closed ncitron closed 4 years ago
Thank you for your report. The error message says that Ignis uses cvxpy, but it is not installed.
Workaround is to install cvxpy pip install cvxpy
.
Aqua's requirements.txt should include "qiskit-ignis[cvx]" according to Ignis readme.
https://github.com/Qiskit/qiskit-ignis#extra-requirements
I also found that if cvxpy is not installed, from qiskit import aqua
fails as follow. This is the reason why aqua version is None.
from qiskit import aqua
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-3-99f58a3ecf11> in <module>
----> 1 from qiskit import aqua
~/envs/qiskit/lib/python3.7/site-packages/qiskit/aqua/__init__.py in <module>
75 from .aqua_globals import aqua_globals
76 from .quantum_instance import QuantumInstance
---> 77 from .algorithms import QuantumAlgorithm
78 from ._logging import (QiskitLogDomains,
79 get_logging_level,
~/envs/qiskit/lib/python3.7/site-packages/qiskit/aqua/algorithms/__init__.py in <module>
190 from .eigen_solvers import NumPyEigensolver, ExactEigensolver, EigensolverResult
191 from .factorizers import Shor
--> 192 from .linear_solvers import HHL, NumPyLSsolver, ExactLSsolver
193 from .minimum_eigen_solvers import (VQE, VQEResult, QAOA, IQPE, IQPEResult, QPE, QPEResult,
194 ClassicalCPLEX, CPLEX_Ising, NumPyMinimumEigensolver,
~/envs/qiskit/lib/python3.7/site-packages/qiskit/aqua/algorithms/linear_solvers/__init__.py in <module>
15 """ Linear Solvers Package """
16
---> 17 from .hhl import HHL
18 from .numpy_ls_solver import NumPyLSsolver, ExactLSsolver
19
~/envs/qiskit/lib/python3.7/site-packages/qiskit/aqua/algorithms/linear_solvers/hhl.py in <module>
24 from qiskit.aqua import QuantumInstance
25 from qiskit.aqua.algorithms import QuantumAlgorithm
---> 26 from qiskit.ignis.verification.tomography import state_tomography_circuits, \
27 StateTomographyFitter
28 from qiskit.converters import circuit_to_dag
~/envs/qiskit/lib/python3.7/site-packages/qiskit/ignis/verification/__init__.py in <module>
102 """
103 from .quantum_volume import qv_circuits, QVFitter
--> 104 from .randomized_benchmarking import (Clifford, BasicUtils, CliffordUtils,
105 CNOTDihedral, DihedralUtils,
106 randomized_benchmarking_seq,
~/envs/qiskit/lib/python3.7/site-packages/qiskit/ignis/verification/randomized_benchmarking/__init__.py in <module>
25 from .dihedral_utils import DihedralUtils
26 from .circuits import randomized_benchmarking_seq
---> 27 from .fitters import (RBFitter, InterleavedRBFitter, PurityRBFitter,
28 CNOTDihedralRBFitter)
29 from .rb_utils import (count_gates, gates_per_clifford,
~/envs/qiskit/lib/python3.7/site-packages/qiskit/ignis/verification/randomized_benchmarking/fitters.py in <module>
29 from qiskit import QiskitError
30 from qiskit.quantum_info.analysis.average import average_data
---> 31 from ..tomography import marginal_counts
32 from ...utils import build_counts_dict_from_list
33
~/envs/qiskit/lib/python3.7/site-packages/qiskit/ignis/verification/tomography/__init__.py in <module>
85
86 # Tomography data formatting
---> 87 from .fitters import StateTomographyFitter
88 from .fitters import ProcessTomographyFitter
89 from .fitters import GatesetTomographyFitter
~/envs/qiskit/lib/python3.7/site-packages/qiskit/ignis/verification/tomography/fitters/__init__.py in <module>
20 # Import tomography fitters
21 from .state_fitter import StateTomographyFitter
---> 22 from .process_fitter import ProcessTomographyFitter
23 from .gateset_fitter import GatesetTomographyFitter
24 from .base_fitter import TomographyFitter
~/envs/qiskit/lib/python3.7/site-packages/qiskit/ignis/verification/tomography/fitters/process_fitter.py in <module>
22 from qiskit.quantum_info.operators import Choi
23 from .base_fitter import TomographyFitter
---> 24 from .cvx_fit import cvxpy, cvx_fit
25 from .lstsq_fit import lstsq_fit
26
ImportError: cannot import name 'cvxpy' from 'qiskit.ignis.verification.tomography.fitters.cvx_fit' (/Users/ima/envs/qiskit/lib/python3.7/site-packages/qiskit/ignis/verification/tomography/fitters/cvx_fit.py)
This is a duplicate of https://github.com/Qiskit/qiskit-ignis/issues/429 it unfortunately looks like an aqua bug because aqua imports ignis in places. But the 0.3.3 ignis release and the corresponding metapackage release 0.19.6 (which are working their way through CI and automation right now) should fix this.
The qiskit 0.19.6 metapackage release (which includes ignis 0.3.3) is released now it should correct this issue
__qiskit_version__
returns:
{'qiskit-terra': '0.14.2', 'qiskit-aer': '0.5.2', 'qiskit-ignis': '0.3.3', 'qiskit-ibmq-provider': '0.7.2', 'qiskit-aqua': '0.7.3', 'qiskit': '0.19.6'}
and the test script returns:
[1, -2, 3]
I'm going to close this as fixed now, please feel free to reopen it if I missed something.
Information
What is the current behavior?
qiskit.__qiskit_version__
returns
Additionally, when running this code from the website:
returns this error, which I assume is related, but it confuses me that it managed to run the second import statement but not the third:
Steps to reproduce the problem
Run the code listed above
What is the expected behavior?
qiskit-aqua should return an actual version.