Unified API for ILP solvers.
Project Links
Meta
Author: Jan Funke, Talley Lambert
Requires Python: >=3.9
Classifiers
Development Status
- 3 - Alpha
License
- OSI Approved :: BSD License
Programming Language
- Python :: 3
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
Typing
- Typed
ilpy
Unified python wrappers for popular ILP solvers
ilpy is a Python library that provides unified wrappers for popular Integer Linear Programming (ILP) solvers such as Gurobi and SCIP. It offers a consistent API that abstracts away the differences between solver implementations.
With ilpy, you can:
- Define linear and quadratic optimization problems using a simple, intuitive syntax
- Express constraints using natural Python expressions
- Switch between different solver backends (currently Gurobi and SCIP)
- Monitor solver progress through callback events
- Support for continuous, binary, and integer variables
Installation
Install from pip with:
pip install ilpy
Note that ilpy requires a solver backend: either pyscipopt (for SCIP) or gurobipy (for Gurobi).
... with SCIP
Currently, ilpy ships by default with support for the SCIP optimization suite, via pyscipopt, but you may also declare it explicitly:
pip install ilpy[scip]
... with Gurobi
If you want to use Gurobi (which requires a license), you can bring
in the gurobipy dependency with:
pip install ilpy[gurobi]
On conda
If you prefer to use conda:
...with SCIP
conda install -c conda-forge ilpy pyscipopt
...with Gurobi
conda install -c conda-forge -c gurobi ilpy gurobi
Local development
pip install -e .[dev]
pytest
0.5.2
Oct 17, 2025
0.5.1
Apr 15, 2025
0.5.0
Apr 15, 2025
0.4.1
Oct 25, 2024
0.4.0
Mar 29, 2024
0.4.0.dev0
Oct 25, 2024
0.3.1
May 06, 2023
0.3.0
May 03, 2023
0.2.3
Mar 13, 2023
0.2.2
Mar 11, 2023
0.2.1
Mar 10, 2023