{"id":23624,"library":"docplex","title":"IBM Decision Optimization CPLEX Modeling for Python (DOcplex)","description":"DOcplex is a modeling library for mathematical optimization, providing a Python API to IBM ILOG CPLEX and CP Optimizer solvers. Current version 2.32.264 supports linear, mixed-integer, and constraint programming. Release cadence is quarterly.","status":"active","version":"2.32.264","language":"python","source_language":"en","source_url":"https://github.com/IBMDecisionOptimization/docplex","tags":["optimization","mathematical programming","CPLEX","operations research","IBM"],"install":[{"cmd":"pip install docplex","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Optional: required to solve models locally, otherwise DOcplex can connect to IBM Decision Optimization on Cloud","package":"cplex","optional":true}],"imports":[{"note":"Model is not directly in the docplex namespace; import from docplex.mp.model.","wrong":"from docplex import Model","symbol":"Model","correct":"from docplex.mp.model import Model"},{"note":"CpoModel is not directly in the docplex namespace; import from docplex.cp.model.","wrong":"from docplex import CpoModel","symbol":"CpoModel","correct":"from docplex.cp.model import CpoModel"}],"quickstart":{"code":"from docplex.mp.model import Model\n\nmdl = Model(name='example')\nx = mdl.integer_var(name='x')\ny = mdl.integer_var(name='y')\nmdl.add_constraint(x + y <= 10)\nmdl.maximize(x + 2*y)\nsolution = mdl.solve()\nif solution:\n    print(f'x = {x.solution_value}, y = {y.solution_value}')","lang":"python","description":"Create a simple mixed-integer programming model, add variables and constraints, maximize objective, and solve."},"warnings":[{"fix":"Access result attributes directly (e.g., `sol.get_objective_value()`) rather than unpacking.","message":"In DOcplex 2.10+, the `CpoModel.solve()` returns a `CpoSolveResult` instead of a tuple. Code relying on tuple unpacking will break.","severity":"breaking","affected_versions":">=2.10"},{"fix":"Use model methods like `model.integer_var()`, `model.binary_var()`, and `model.continuous_var()` instead.","message":"`docplex.mp.vartype` (e.g., `IntegerVarType`) is deprecated in favor of using `docplex.mp.model.Model.integer_var()` directly.","severity":"deprecated","affected_versions":">=2.20"},{"fix":"Install CPLEX (e.g., `pip install cplex`) and set up license, or use IBM Decision Optimization on Cloud (set `url` and `key` in `Model.solve()`).","message":"DOcplex requires a CPLEX license to solve locally (free for academic users with IBM Academic Initiative). Without a local CPLEX installation or cloud subscription, `solve()` will raise a `DOcplexException`.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Check model constraints for conflicts or use `mdl.refine_conflict()` to diagnose infeasibility.","cause":"Solver failed to find a feasible solution or model is infeasible.","error":"docplex.util.environment.DOcplexException: Model has no solution"},{"fix":"Use `from docplex.mp.model import Model` instead of `from docplex import Model`.","cause":"Incorrect import path; Model is in `docplex.mp.model`.","error":"ImportError: cannot import name 'Model' from 'docplex'"},{"fix":"Use `model.integer_var()` or `model.binary_var()` directly, not `IntegerVarType`.","cause":"Deprecated import removed in newer versions.","error":"NameError: name 'IntegerVarType' is not defined"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}