qiskit-optimization
qiskit-optimization copied to clipboard
qiskit-optimization[cplex] already satisfied, but getting error with CplexOptimizer()
Environment
- Qiskit Optimization version: 0.4.0
- Python version: 3.10.5
- Operating system: macOS, arm64 (M1 Pro)
What is happening?
I'm trying to run Tutorial 10 on Warm-Start QAOA and get this error below from the 2nd code-cell using CplexOptimizer().solve(qubo)
MissingOptionalLibraryError Traceback (most recent call last)
Input In [2], in <cell line: 3>()
1 from qiskit_optimization.algorithms import CplexOptimizer, GurobiOptimizer
----> 3 cplex_result = CplexOptimizer().solve(qp)
4 gurobi_result = GurobiOptimizer().solve(qp)
6 print("cplex")
File ~/opt/anaconda3/envs/q_explorer/lib/python3.10/site-packages/qiskit/utils/classtools.py:116, in _WrappedMethod.__get__.<locals>.out(*args, **kwargs)
113 @functools.wraps(method)
114 def out(*args, **kwargs):
115 for callback in self._before:
--> 116 callback.__get__(obj, objtype)(*args, **kwargs)
117 retval = method(*args, **kwargs)
118 for callback in self._after:
File ~/opt/anaconda3/envs/q_explorer/lib/python3.10/site-packages/qiskit/utils/lazy_tester.py:39, in _RequireNow.__call__(self, *_args, **_kwargs)
38 def __call__(self, *_args, **_kwargs):
---> 39 self._tester.require_now(self._feature)
File ~/opt/anaconda3/envs/q_explorer/lib/python3.10/site-packages/qiskit/utils/lazy_tester.py:223, in LazyDependencyManager.require_now(self, feature)
221 if self:
222 return
--> 223 raise MissingOptionalLibraryError(
224 libname=self._name, name=feature, pip_install=self._install, msg=self._msg
225 )
MissingOptionalLibraryError: "The 'CPLEX' library is required to use 'CplexOptimizer'. You can install it with 'pip install 'qiskit-optimization[cplex]''."
How can we reproduce the issue?
from qiskit_optimization.problems import QuadraticProgram
#define a problem
qp = QuadraticProgram()
qp.binary_var("x")
qp.integer_var(name="y", lowerbound=-1, upperbound=4)
qp.maximize(quadratic={("x", "y"): 1})
qp.linear_constraint({"x": 1, "y": -1}, "<=", 0)
print(qp.prettyprint())
from qiskit_optimization.algorithms import CplexOptimizer, GurobiOptimizer
cplex_result = CplexOptimizer().solve(qp)
gurobi_result = GurobiOptimizer().solve(qp)
print("cplex")
print(cplex_result.prettyprint())
print()
print("gurobi")
print(gurobi_result.prettyprint())
when I run pip install 'qiskit-optimization[cplex]' I get the message below: (I also already have the CPLEX Studio Community Edition)
Requirement already satisfied: qiskit-optimization[cplex] in /Users/bartubisgin/opt/anaconda3/envs/q_explorer/lib/python3.10/site-packages (0.4.0)
What should happen?
How can I correctly access the CplexOptimizer without any errors? Is this possibly a bug or some kind of version conflict issue?
Any suggestions?
No response
CPLEX does not support arm64. There is only macosx...x86_64 in the list.
https://pypi.org/project/cplex/#files
How did you install CPLEX? Is cplex in pip list?
AFAIK, M1 users need Rosetta to use CPLEX.
@bartubisgin Do you have any update? If no, I will close this issue.