pyomo
An object-oriented algebraic modeling language in Python for structured optimization problems.
Science Score: 77.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: springer.com -
✓Committers with academic emails
35 of 165 committers (21.2%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.0%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
An object-oriented algebraic modeling language in Python for structured optimization problems.
Basic Info
- Host: GitHub
- Owner: Pyomo
- License: other
- Language: Python
- Default Branch: main
- Homepage: https://www.pyomo.org
- Size: 96 MB
Statistics
- Stars: 2,260
- Watchers: 60
- Forks: 551
- Open Issues: 320
- Releases: 22
Topics
Metadata Files
README.md
Pyomo Overview
Pyomo is a Python-based open-source software package that supports a diverse set of optimization capabilities for formulating and analyzing optimization models. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Pyomo supports a wide range of problem types, including:
- Linear programming
- Quadratic programming
- Nonlinear programming
- Mixed-integer linear programming
- Mixed-integer quadratic programming
- Mixed-integer nonlinear programming
- Mixed-integer stochastic programming
- Generalized disjunctive programming
- Differential algebraic equations
- Mathematical programming with equilibrium constraints
- Constraint programming
Pyomo supports analysis and scripting within a full-featured programming
language. Further, Pyomo has also proven an effective framework for
developing high-level optimization and analysis tools. For example, the
mpi-sppy package provides generic
solvers for stochastic programming. mpi-sppy leverages the fact that
Pyomo's modeling objects are embedded within a full-featured high-level
programming language, which allows for transparent parallelization of
subproblems using Python parallel communication libraries.
Pyomo was formerly released as the Coopr software library.
Pyomo is available under the BSD License - see the
LICENSE.md file.
Pyomo is currently tested with the following Python implementations:
- CPython: 3.9, 3.10, 3.11, 3.12, 3.13
- PyPy: 3.10
Testing and support policy:
At the time of the first Pyomo release after the end-of-life of a minor Python version, we will remove testing for that Python version.
Installation
PyPI

pip install pyomo
Anaconda

conda install -c conda-forge pyomo
Tutorials and Examples
- Pyomo — Optimization Modeling in Python
- Pyomo Workshop Slides
- Prof. Jeffrey Kantor's Pyomo Cookbook
- The companion notebooks for Hands-On Mathematical Optimization with Python
- Pyomo Gallery
Getting Help
To get help from the Pyomo community ask a question on one of the following: * Use the #pyomo tag on StackOverflow * Pyomo Forum
Developers
Pyomo development moved to this repository in June 2016 from Sandia National Laboratories. Developer discussions are hosted by Google Groups.
The Pyomo Development team holds weekly coordination meetings on Tuesdays 12:30 - 14:00 (MT). Please contact wg-pyomo@sandia.gov to request call-in information.
By contributing to this software project, you are agreeing to the following terms and conditions for your contributions:
- You agree your contributions are submitted under the BSD license.
- You represent you are authorized to make the contributions and grant the license. If your employer has rights to intellectual property that includes your contributions, you represent that you have received permission to make contributions and grant the required license on behalf of that employer.
Related Packages
See https://pyomo.readthedocs.io/en/latest/related_packages.html.
Owner
- Name: Pyomo
- Login: Pyomo
- Kind: organization
- Repositories: 5
- Profile: https://github.com/Pyomo
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- name: "Pyomo contributors"
title: "Pyomo: a Python-based, open-source optimization modeling language with a diverse set of optimization capabilities"
url: "https://github.com/Pyomo/pyomo"
license-url: "https://github.com/Pyomo/pyomo/blob/main/LICENSE.md"
preferred-citation:
type: book
authors:
- family-names: "Bynum"
given-names: "Michael L"
- family-names: "Hackebeil"
given-names: "Gabriel A"
- family-names: "Hart"
given-names: "William E"
- family-names: "Laird"
given-names: "Carl D"
- family-names: "Nicholson"
given-names: "Bethany L"
- family-names: "Siirola"
given-names: "John D"
- family-names: "Watson"
given-names: "Jean-Paul"
- family-names: "Woodruff"
given-names: "David L"
title: "Pyomo - optimization modeling in Python, 3rd Edition"
publisher: "Springer"
volume: 67
year: 2021
doi: "10.1007/978-3-030-68928-5"
GitHub Events
Total
- Create event: 10
- Release event: 4
- Issues event: 141
- Watch event: 237
- Delete event: 5
- Issue comment event: 604
- Push event: 180
- Gollum event: 1
- Pull request review comment event: 702
- Pull request event: 388
- Pull request review event: 872
- Fork event: 40
Last Year
- Create event: 10
- Release event: 4
- Issues event: 141
- Watch event: 237
- Delete event: 5
- Issue comment event: 604
- Push event: 180
- Gollum event: 1
- Pull request review comment event: 702
- Pull request event: 388
- Pull request review event: 872
- Fork event: 40
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| John Siirola | j****a | 6,265 |
| William Hart | w****2@g****m | 2,052 |
| Miranda Mundt | m****t@s****v | 1,724 |
| Gabriel Hackebeil | g****l@g****m | 1,711 |
| Emma Johnson | e****8 | 1,589 |
| Robert Parker | r****r@g****m | 1,362 |
| Michael Bynum | m****m | 925 |
| Zedong | p****g@1****m | 844 |
| Qi Chen | q****n@a****u | 772 |
| jasherma | j****a@a****u | 743 |
| Bethany Nicholson | b****o@s****v | 666 |
| Grant Seastream | g****e@a****u | 279 |
| Carl Laird | c****d | 243 |
| jialuw96 | j****4@n****u | 241 |
| David L. Woodruff | d****f@u****u | 178 |
| Daniel Laky | 2****y | 152 |
| Rahul Joglekar | r****a@a****u | 145 |
| Jean-Paul Watson | j****m | 142 |
| Alex Dowling | a****x@d****g | 131 |
| Katherine Klise | k****e@s****v | 124 |
| Soren Davis | s****s@g****m | 119 |
| John Eslick | j****k@n****v | 89 |
| Bernard Knueven | B****n@n****v | 83 |
| Sunjeev Kale | s****e@a****u | 78 |
| David Woodruff | d****f | 70 |
| Utkarsh-Detha | u****a@g****m | 61 |
| natalieisenberg | i****e@g****m | 59 |
| Kanishka Ghosh | k****h@n****u | 48 |
| Ruaridh Williamson | r****n@f****m | 46 |
| Eslick | J****k@c****m | 42 |
| and 135 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 422
- Total pull requests: 972
- Average time to close issues: almost 2 years
- Average time to close pull requests: 17 days
- Total issue authors: 185
- Total pull request authors: 67
- Average comments per issue: 2.29
- Average comments per pull request: 1.81
- Merged pull requests: 787
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 85
- Pull requests: 389
- Average time to close issues: 15 days
- Average time to close pull requests: 7 days
- Issue authors: 54
- Pull request authors: 32
- Average comments per issue: 0.92
- Average comments per pull request: 1.19
- Merged pull requests: 283
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- whart222 (26)
- mrmundt (18)
- emma58 (18)
- michaelbynum (16)
- jsiirola (14)
- ZedongPeng (13)
- blnicho (12)
- shermanjasonaf (12)
- andrewlee94 (11)
- dallan-keylogic (11)
- Robbybp (10)
- carldlaird (10)
- adowling2 (9)
- bknueven (9)
- codykarcher (8)
Pull Request Authors
- jsiirola (345)
- mrmundt (187)
- emma58 (53)
- michaelbynum (52)
- shermanjasonaf (48)
- Robbybp (39)
- blnicho (37)
- eslickj (18)
- bknueven (17)
- ZedongPeng (12)
- adowling2 (10)
- sadavis1 (10)
- djlaky (9)
- quantresearch1 (8)
- sscini (8)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 621,727 last-month
-
Total dependent packages: 94
(may contain duplicates) -
Total dependent repositories: 268
(may contain duplicates) - Total versions: 104
- Total maintainers: 4
pypi.org: pyomo
The Pyomo optimization modeling framework
- Homepage: https://www.pyomo.org
- Documentation: https://pyomo.readthedocs.io/en/stable/
- License: LICENSE ======= Copyright (c) 2008-2025 National Technology and Engineering Solutions of Sandia, LLC . Under the terms of Contract DE-NA0003525 with National Technology and Engineering Solutions of Sandia, LLC , the U.S. Government retains certain rights in this software. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Sandia National Laboratories nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
Latest release: 6.9.4
published 4 months ago
Rankings
conda-forge.org: pyomo
An object-oriented algebraic modeling language in Python for structured optimization problems.
- Homepage: http://pyomo.org
- License: BSD-3-Clause
-
Latest release: 6.4.2
published over 3 years ago
