Getting started


HiGHS is available as highspy on PyPi.

If highspy is not already installed, run:

$ pip install highspy


To use highspy within a Python program, it must be imported

import highspy

When using highspy, it is likely that numpy structures will be needed, so must also be imported

import numpy as np


HiGHS must be initialized before making calls to the HiGHS Python library:

h = highspy.Highs()


When called from C++, or via the C API, console logging is duplicated to a file that, by default, is Highs.log. However, to channel logging to a file from highspy, the name of the file needs to be specified explicitly via a call to setOptionValue('log_file', '').


Detailed documentation of the methods and structures is given in the examples section.

Return status

Unless a method just returns data from HiGHS, so is guaranteed to run successfully, each method returns a status to indicate whether it has run successfully. This value is an instance of the enum HighsStatus, and in the examples section, it is referred to as status.

First example

The following Python code reads a model from the file model.mps, and then solves it.

import highspy

h = highspy.Highs()
filename = 'model.mps'
print('Model ', filename, ' has status ', h.getModelStatus())