Optimization & simulation · Sandia National Laboratories / Pyomo community
Pyomo
Open-source Python library for formulating optimization models and sending them to a solver.
Pyomo is a modeling language, not a solver: it is a Python library that lets analysts define variables, constraints and objectives as Python objects, then dispatch the resulting model to an external solver such as Gurobi, CPLEX, FICO Xpress, or open-source options like GLPK, CBC and HiGHS. Because models are plain Python, they can be generated programmatically, combined with pandas or NumPy data pipelines, and version-controlled like any other code — a different workflow from AMPL's standalone algebraic syntax. Pyomo supports linear, mixed-integer, nonlinear, and some stochastic and bilevel optimization formulations. It is maintained by Sandia National Laboratories and an open-source community, has no license cost, and is a common choice for teams that want optimization modeling to live inside their existing Python codebase rather than a separate tool.
At a glance
| Vendor | Sandia National Laboratories / Pyomo community |
|---|---|
| Pricing model | Open source + paid options |
| Free tier | Yes |
| Deployment | Self-hosted |
| Open source | Yes (BSD-3-Clause) |
| Best for | Python-based data science and engineering teams who want optimization modeling embedded in their existing codebase. |
Pricing
Free and open source; solvers called by Pyomo may themselves be commercial.
Pricing has not been verified yet — see the vendor's site.
Features
- Python-native modeling of variables, constraints and objectives
- Solver-agnostic: works with Gurobi, CPLEX, Xpress, GLPK, CBC, HiGHS and more
- Linear, mixed-integer, nonlinear and some stochastic formulations
- Bilevel and generalized disjunctive programming extensions
- Integrates with pandas, NumPy and standard Python tooling
- Model transformation and preprocessing utilities
- Scriptable for batch runs and sensitivity studies
Integrations
Profile last reviewed September 21, 2026