cylp
A Python interface for CLP, CBC, and CGL
What it is and what it does
CyLP is a Python wrapper around COIN-OR's linear and mixed-integer programming solvers, designed to let you formulate optimization problems in Python and solve them using industrial-strength C++ backends. It supports reading problems from MPS files or building them programmatically using its modeling API, and its distinguishing feature is the ability to inject custom Python code into the solution process—defining cut generators, branch-and-bound strategies, and Simplex pivot rules on the fly.
The package depends on numpy and scipy for numerical operations and requires external COIN-OR Cbc binaries to function. Installation is straightforward on Windows and common Linux/macOS configurations via prebuilt wheels, but older platforms or Apple Silicon may require building from source, which adds complexity. It is actively used in research and production settings but has an aging maintenance posture with infrequent releases.
Use it for:
- Formulate and solve linear and mixed-integer programs with custom branching or cutting-plane strategies embedded in Python.
- Read optimization problems from MPS files and solve them, then inspect or modify the solution process interactively.
- Build optimization models programmatically using CyLP's modeling API for supply-chain, scheduling, or resource-allocation problems.
- Integrate COIN-OR solvers into larger Python applications for convex optimization or other frameworks.
- Teach or research advanced techniques like mixed-integer cuts and branch-and-bound customization with a Python-friendly interface.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
CyLP provides a Python interface to COIN-OR's linear and mixed-integer programming solvers (CLP, CBC, CGL), allowing you to model optimization problems and customize the solution process with Python-defined cut generators, branch-and-bound strategies, and pivot rules.
Yes, with conditions. CyLP is worth installing if you need to solve linear or mixed-integer programs with customizable solver behavior from Python, and if you can manage the external Cbc dependency. Prebuilt wheels make installation easy on common platforms, but Apple Silicon users and older systems face friction. EPL-2.0 copyleft is acceptable for open-source and research use but requires review for proprietary software. Aging maintenance (254 days since last release) is a minor concern given active production use, but monitor for compatibility issues. No known security vulnerabilities.
Install
cylp on PyPI
pip
pip install cylpuv
uv add cylppoetry
poetry add cylpInstalling cylp
Before you install
Medium friction: prebuilt wheels available for Python 3.10–3.14 on Windows, Linux, and macOS x86_64, but Apple Silicon and older platforms may require building from source. Requires COIN-OR Cbc binaries (version 2.10 or earlier) installed separately. Maintenance status is aging—last release 254 days ago, though repository remains active.
License in practice
Licensed under EPL-2.0 (copyleft). Derivative works and modifications must be distributed under the same license; proprietary use of modified versions is restricted. Acceptable for research and open-source projects but requires careful review if integrating into closed-source commercial software.
Quickstart
pip install cylp
from cylp.cy import CyClpSimplex
s = CyClpSimplex()
s.readMps('problem.mps')
s.initialSolve()
print(s.objectiveValue)
COIN-OR Cbc binaries (version 2.10 or earlier) must be installed separately; on Linux/macOS, typically via system package manager, Homebrew, or conda. Binary wheels on Windows include Cbc; on other platforms, wheel availability depends on Python version and architecture.
Verify before relying
- Whether the aging maintenance status (254 days since last release) indicates active development or dormancy relative to project maturity.
- Compatibility with Cbc versions newer than 2.10 or whether the stated restriction is a hard blocker.
- Performance characteristics and scalability limits for large-scale optimization problems.
Package facts
| License | EPL-2.0 (copyleft) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — numpy, scipy |
| Maintenance | aging — 254 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 96,719/month — #13,198 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cylp-0.94.0-cp310-cp310-macosx_10_9_x86_64.whl; cylp-0.94.0-cp310-cp310-macosx_11_0_arm64.whl; cylp-0.94.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cylp-0.94.0-cp310-cp310-manylinux_2_24_i686.manylinux_2_28_i686.whl; cylp-0.94.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; cylp-0.94.0-cp311-cp311-macosx_10_9_x86_64.whl; cylp-0.94.0-cp311-cp311-macosx_11_0_arm64.whl; cylp-0.94.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cylp-0.94.0-cp311-cp311-manylinux_2_24_i686.manylinux_2_28_i686.whl; cylp-0.94.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; cylp-0.94.0-cp312-cp312-macosx_10_13_x86_64.whl; cylp-0.94.0-cp312-cp312-macosx_11_0_arm64.whl; cylp-0.94.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cylp-0.94.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; cylp-0.94.0-cp313-cp313-macosx_10_13_x86_64.whl; cylp-0.94.0-cp313-cp313-macosx_11_0_arm64.whl; cylp-0.94.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cylp-0.94.0-cp313-cp313-manylinux_2_24_i686.manylinux_2_28_i686.whl; cylp-0.94.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; cylp-0.94.0-cp314-cp314-macosx_10_15_x86_64.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
cbcboxcbcbox is a self-contained Python distribution…
copyleft · top 15,000 on PyPI
mipPython MIP models and solves mixed-integer…
copyleft · top 15,000 on PyPI
PuLPPuLP is a linear and mixed-integer programming…
permissive · top 5,000 on PyPI
amplpyamplpy is a Python interface to AMPL, an…
permissive · top 15,000 on PyPI
cvxpyCVXPY is a Python modeling language for…
permissive · top 5,000 on PyPI
ortoolsOR-Tools provides constraint programming,…
permissive · top 5,000 on PyPI
linopylinopy builds linear, integer, and quadratic…
permissive · top 15,000 on PyPI
cvxpy-basecvxpy-base provides compiled solver kernels for…
permissive · top 15,000 on PyPI
qpsolversProvides a unified Python interface to solve…
copyleft · top 5,000 on PyPI
fpylllfpylll is a Python wrapper for the fplll…
unclear · top 15,000 on PyPI