PuLP
PuLP is an LP modeler written in python. PuLP can generate MPS or LP files and call GLPK, COIN CLP/CBC, CPLEX, and GUROBI to solve linear problems.
Decision gist · record as of 2026-08-14
Yes, if you need to model and solve linear or mixed-integer optimization problems in Python. PuLP is actively maintained, has no install friction, and offers a clean Python API with broad solver support. Install it when you have an optimization problem to solve; be aware that you will need to install a solver separately.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or newer.
- A solver must be installed separately; without one, PuLP falls back to other available solvers.
- Installation is straightforward with no runtime dependencies; the package is a pure Python wheel.
License · maintenance · safety
MIT (permissive) — PuLP is distributed under the MIT license, a permissive open-source license that allows commercial and private use with minimal restrictions.
last release 2026-05-25 (81 days) · last repo commit 2026-08-14 · 2,465 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 7,037,804 downloads/mo, #1,793 on PyPI
Alternatives
Verify before relying
from pulp import LpProblem, LpMinimize, LpVariable
prob = LpProblem("myProblem", LpMinimize)
x = prob.add_variable("x", 0, 3)
y = prob.add_variable("y", cat="Binary")
prob += x + y <= 2
prob += -4*x + y
status = prob.solve()- Whether the fallback solver is suitable for production workloads or only for small problems
- Performance characteristics when solving large-scale problems with different solvers
What it is and what it does
PuLP is a Python library for building and solving linear and mixed-integer programming optimization models. You define variables, constraints, and an objective function using a natural Python syntax, then call a solver to find the optimal solution. The library can generate standard MPS or LP file formats and integrates with a range of solvers, giving you flexibility in choosing the right solver for your problem scale and requirements.
PuLP is commonly used in operations research, supply chain optimization, scheduling, resource allocation, and other domains where you need to find the best solution subject to constraints. It has no runtime dependencies beyond Python itself, making it lightweight to install. However, to actually solve problems, you must install at least one solver separately, which may involve external system libraries or commercial licenses depending on your choice.
Use it for
- Formulate and solve production scheduling problems with resource and time constraints
- Optimize supply chain logistics, warehouse allocation, or vehicle routing with cost minimization
- Solve resource allocation and portfolio optimization problems in finance or operations
- Model and solve knapsack, bin packing, or other combinatorial optimization problems
- Prototype optimization algorithms before moving to specialized software
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to model and solve linear or mixed-integer optimization problems in Python.
PuLP is actively maintained, has no install friction, and offers a clean Python API with broad solver support. Install it when you have an optimization problem to solve; be aware that you will need to install a solver separately.
Install
pulp on PyPI
Before you install
Installation is straightforward with no runtime dependencies; the package is a pure Python wheel. Maintenance is active with a recent release and steady repository activity.
Requires Python 3.10 or newer. A solver must be installed separately; without one, PuLP falls back to other available solvers.
License in practice
PuLP is distributed under the MIT license, a permissive open-source license that allows commercial and private use with minimal restrictions.
Quickstart
from pulp import LpProblem, LpMinimize, LpVariable
prob = LpProblem("myProblem", LpMinimize)
x = prob.add_variable("x", 0, 3)
y = prob.add_variable("y", cat="Binary")
prob += x + y <= 2
prob += -4*x + y
status = prob.solve()
Verify before relying
- Whether the fallback solver is suitable for production workloads or only for small problems
- Performance characteristics when solving large-scale problems with different solvers
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 81 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 7,037,804 / month, #1,793 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: Science/ResearchNatural Language :: EnglishProgramming Language :: PythonTopic :: Scientific/Engineering :: Mathematics |
Evidence: pulp-3.3.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “operations research”
- PuLPPuLP is a linear and mixed-integer programming modeler that lets you…
- ortoolsOR-Tools provides constraint programming, linear and mixed-integer…
- tavily-cliTavily CLI provides command-line and programmatic access to Tavily's…
Give your agent the search over MCP, or paste the wish link into any chat.
More Mathematics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.
Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.
onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.
Install it if you have ONNX models to run in production or development.
See also mip · ortools · linopy · docplex · optlang · pulp-glue · amplpy · cylp · swiglpk · pulp-cli