Interface customization

The Gurobi interactive shell lives within a full-featured scripting language. This allows you to perform a wide range of customizations to suit your particular needs. Creating custom functions requires some knowledge of the Python language, but you can achieve a lot by using a very limited set of language features.

Let us consider a simple example. Imagine that you store your models in a certain directory on your disk. Rather than having to type the full path whenever you read a model, you can create your own custom read method:

gurobi> def myread(filename):
.......   return read("/home/john/models/"+filename)

Note that the indentation of the second line is required.

Defining this function allows you to do the following:

gurobi> m = myread("stein9")
Read MPS format model from file /home/john/models/stein9.mps

If you don't want to type this function in each time you start the Gurobi shell, you can store it in a file in your current directory. The file would look like the following:

from gurobipy import *

def myread(filename):
  return read("/home/john/models/"+filename)

The from gurobipy import * line allows you to use the read method from the Gurobi shell in your custom function. The name of your customization file must end with a .py suffix. If the file is named custom.py, you would then type the following to import this function:

gurobi> from custom import *

One file can contain as many custom functions as you'd like (see custom.py in <installdir>/examples/python for an example). If you wish to make site-wide customizations, you can also customize the gurobi.py file that is included in <installdir>/lib.