COPT: a Python library for Constrained OPTimization

Life is too short to learn another API

COPT is an optimization library that does not reinvent the wheel. It packs classical optimization algorithms in an API following that of scipy.optimize. So if you’ve already used that library, you should feel right at ease.

It provides:


The methods implements in copt can be categorized as:


These are methods that combine the gradient of a smooth term with the proximal operator of a potentially non-smooth term. They can be used to solve problems involving one or several non-smooth terms. Read more …


Frank-Wolfe, also known as conditional gradient, are a family of methods to solve constrained optimization problems. Contrary to proximal-gradient methods, they don’t require access to the projection onto the constraint set. Read more …

Stochastic Methods

Methods that can solve optimization problems with access only to a noisy evaluation of the objective. Read more ….


If you already have a working installation of numpy and scipy, the easiest way to install copt is using pip

pip install -U copt

Alternatively, you can install the latest development from github with the command:

pip install git+

Where to go from here?

To know more about copt, check out our example gallery or browse through the module reference using the left navigation bar.

Last change: Oct 28, 2020