skillfed

xpress

FICO Xpress Optimizer Python interface

xpress v9.9.1 214.4K downloads/30d#9,417 on PyPI
License unclear Active released

What it is and what it does

Xpress is a Python binding to the FICO Xpress Optimizer, a commercial mathematical optimization solver. It lets you define and solve optimization problems—linear, quadratic, conic, and nonlinear, including mixed-integer variants—using Python syntax and NumPy integration. You construct problems by adding variables and constraints, set an objective function, and call optimize() to solve.

The package ships with precompiled binaries for modern Python versions and platforms (macOS, Linux, Windows). It includes a community license by default, so you can start solving problems without additional licensing setup. For GPU acceleration of the PDHG linear solver, you can install optional CUDA support. The underlying solver is the FICO Xpress library, which is maintained separately; this package is the Python interface to it.

Use it for:

  • Solve supply-chain optimization, production planning, or resource allocation problems modeled as linear or mixed-integer programs.
  • Prototype and solve nonlinear optimization problems using Python without switching to a compiled language.
  • Integrate optimization into data science workflows by combining NumPy arrays with Xpress problem definitions.
  • Accelerate large-scale linear optimization on GPU-equipped systems using the PDHG solver with CUDA support.
  • Develop and test optimization algorithms using Xpress callbacks and the Python interface for iterative refinement.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Python interface to the FICO Xpress Optimizer for creating and solving linear, quadratic, conic, and nonlinear optimization problems, including mixed-integer variants.

Yes, if you need to solve mathematical optimization problems and have access to or can accept the Xpress license terms. The package is actively maintained, supports modern Python versions, and offers broad problem-class coverage. Install friction is moderate due to compiled binaries, but wheels are widely available. The main caveat is license clarity—review the Xpress Shrinkwrap License Agreement before production deployment, especially for commercial use.

Install

xpress on PyPI

pip

pip install xpress

uv

uv add xpress

poetry

poetry add xpress

Installing xpress

Before you install

Medium install friction due to compiled binary wheels; prebuilt wheels available for Python 3.10–3.14 across macOS (ARM64), Linux (x86_64, ARM64), and Windows. Maintenance is active with a release 42 days ago. Runtime dependency on numpy and xpresslibs (a compiled library package).

License in practice

License treatment is unclear; the package is governed by the Xpress Shrinkwrap License Agreement and includes a community license. A copy of the license is stored in LICENSE.txt in the dist-info directory. Users should review the shrinkwrap terms before deployment.

Quickstart

pip install xpress

import xpress as xp
p = xp.problem(name='myexample')
x1 = p.addVariable(vartype=xp.integer, name='x1', lb=-10, ub=10)
x2 = p.addVariable(name='x2')
p.setObjective(x1**2 + 2*x2)
p.addConstraint(x1 + 3*x2 >= 4)
p.optimize()
print(p.getSolution(x1), p.getSolution(x2))

Requires FICO Xpress Optimizer library (xpresslibs); community license is included but commercial use or advanced features may require a separate license. Optional GPU support requires NVIDIA CUDA Runtime 13.0+ and drivers version 580+.

Verify before relying

  • Whether the community license has restrictions on problem size, solver features, or commercial use.
  • Performance characteristics and solver algorithm selection for different problem classes.
  • Support timeline and end-of-life dates for Python 3.10–3.14 versions.

Package facts

License not declared (unclear)
Python support not specified
Install friction medium — platform-specific wheel
Runtime dependencies 2 — numpy, xpresslibs
Maintenance actively maintained — 42 days since the last release
First released
Downloads 214,414/month — #9,417 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: xpress-9.9.1-cp310-cp310-macosx_11_0_arm64.whl; xpress-9.9.1-cp310-cp310-manylinux1_x86_64.whl; xpress-9.9.1-cp310-cp310-manylinux2014_aarch64.whl; xpress-9.9.1-cp310-cp310-win_amd64.whl; xpress-9.9.1-cp311-cp311-macosx_11_0_arm64.whl; xpress-9.9.1-cp311-cp311-manylinux1_x86_64.whl; xpress-9.9.1-cp311-cp311-manylinux2014_aarch64.whl; xpress-9.9.1-cp311-cp311-win_amd64.whl; xpress-9.9.1-cp312-cp312-macosx_11_0_arm64.whl; xpress-9.9.1-cp312-cp312-manylinux1_x86_64.whl; xpress-9.9.1-cp312-cp312-manylinux2014_aarch64.whl; xpress-9.9.1-cp312-cp312-win_amd64.whl; xpress-9.9.1-cp313-cp313-macosx_11_0_arm64.whl; xpress-9.9.1-cp313-cp313-manylinux1_x86_64.whl; xpress-9.9.1-cp313-cp313-manylinux2014_aarch64.whl; xpress-9.9.1-cp313-cp313-win_amd64.whl; xpress-9.9.1-cp314-cp314-macosx_11_0_arm64.whl; xpress-9.9.1-cp314-cp314-manylinux1_x86_64.whl; xpress-9.9.1-cp314-cp314-manylinux2014_aarch64.whl; xpress-9.9.1-cp314-cp314t-macosx_11_0_arm64.whl

Keywords: optimization, mip, minlp, xpress

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: CProgramming Language :: C++Programming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Free Threading :: 2 - BetaTopic :: Scientific/EngineeringTopic :: Software Development

Tags

mathematical optimization solverlinear programming pythonmixed-integer programmingnonlinear optimizationquadratic programming solverMILP MIQP solverconic programming
optimization-solvermixed-integer-programmingnumerical-computing

More Software Development packages