diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4234a6302a..a4aa3ea12d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -143,7 +143,10 @@ jobs: - uses: ./.github/actions/install-aqua - name: Install Dependencies run: | - pip install jax jaxlib + # pin jax and jaxlib as the latest jaxlib 0.1.60 forces + # numpy 1.19.5 to be installed which causes cvxpy failure to load + # with 'numpy.core.multiarray failed to import.' error. + pip install -U jax==0.2.9 jaxlib==0.1.59 shell: bash - name: Aqua Unit Tests under Python ${{ matrix.python-version }} uses: ./.github/actions/run-tests diff --git a/qiskit/aqua/utils/qp_solver.py b/qiskit/aqua/utils/qp_solver.py index 3e24eebdb5..9b0e344c6a 100644 --- a/qiskit/aqua/utils/qp_solver.py +++ b/qiskit/aqua/utils/qp_solver.py @@ -17,11 +17,6 @@ import logging import numpy as np -try: - import cvxpy - _HAS_CVX = True -except ImportError: - _HAS_CVX = False from qiskit.aqua import MissingOptionalLibraryError @@ -57,11 +52,14 @@ def optimize_svm(kernel_matrix: np.ndarray, MissingOptionalLibraryError: If cvxpy is not installed """ # pylint: disable=invalid-name, unused-argument - if not _HAS_CVX: + try: + import cvxpy + except ImportError as ex: raise MissingOptionalLibraryError( libname='CVXPY', name='optimize_svm', - pip_install="pip install 'qiskit-aqua[cvx]'") + pip_install="pip install 'qiskit-aqua[cvx]'", + msg=str(ex)) from ex if max_iters is not None: warnings.warn('The max_iters parameter is deprecated as of '