Qiskit Optimization depends on Qiskit, which has its own installation instructions detailing the installation options for Qiskit and its supported environments/platforms. You should refer to that first. Then the information here can be followed which focuses on the additional installation specific to Qiskit Optimization.
Qiskit Optimization has some functions that have been made optional where the dependent code and/or support program(s) are not (or cannot be) installed by default. Those are IBM CPLEX, CVXPY and Matplotlib. See Optional installs for more information.
The simplest way to get started is to follow the Qiskit installation instructions
In your virtual environment where you installed Qiskit, also install
pip install qiskit-optimization
As Qiskit Optimization depends on Qiskit, you can though simply install it into your environment, as above, and pip will automatically install a compatible version of Qiskit if one is not already installed.
Installing Qiskit Optimization from source allows you to access the most recently updated version under development instead of using the version in the Python Package Index (PyPI) repository. This will give you the ability to inspect and extend the latest version of the Qiskit Optimization code more efficiently.
Since Qiskit Optimization depends on Qiskit, and its latest changes may require new or changed features of Qiskit, you should first follow Qiskit’s “Install from source” instructions here
Installing Qiskit Optimization from Source
Using the same development environment that you installed Qiskit in you are ready to install Qiskit Optimization.
Clone the Qiskit Optimization repository.
git clone https://github.com/qiskit-community/qiskit-optimization.git
Cloning the repository creates a local folder called
If you want to run tests or linting checks, install the developer requirements.
pip install -r requirements-dev.txt
pip install .
If you want to install it in editable mode, meaning that code changes to the project don’t require a reinstall to be applied, you can do this with:
pip install -e .
IBM CPLEX may be installed using
pip install 'qiskit-optimization[cplex]'to enable the reading of LP files and the usage of the CplexOptimizer, wrapper for
cplex.Cplex. CPLEX is a separate package and its support of Python versions is independent of Qiskit Optimization, where this CPLEX command will have no effect if there is no compatible version of CPLEX available (yet).
CVXPY may be installed using the command
pip install 'qiskit-optimization[cvx]'. CVXPY being installed will enable the usage of the Goemans-Williamson algorithm as an optimizer GoemansWilliamsonOptimizer.
Matplotlib may be installed using the command
pip install 'qiskit-optimization[matplotlib]'. Matplotlib being installed will enable the usage of the draw method in the graph optimization application classes.
Gurobipy may be installed using the command
pip install 'qiskit-optimization[gurobi]'. Gurobipy being installed will enable the usage of the GurobiOptimizer.