cvxopt
Convex optimization package
Decision gist · record as of 2026-08-14
Yes, if you need convex optimization and accept GPLv3 licensing. The package is production-stable, actively maintained, and has no Python dependencies. Install friction is moderate due to compiled components, but prebuilt wheels cover common platforms. Not suitable for proprietary closed-source projects due to GPLv3 copyleft requirements.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a C compiler and numerical libraries (BLAS, LAPACK) for source builds; prebuilt wheels simplify installation on common platforms.
- Medium install friction due to compiled C components; wheels are available for Python 3.10–3.12 on macOS, Linux, and Windows, but source builds may require a C compiler and numerical libraries.
License · maintenance · safety
(unclear) — Licensed under GNU General Public License v3, which requires that any derivative work or distribution must also be released under GPLv3 and provide source code access—a significant constraint for proprietary or closed-source projects.
last release 2026-02-09 (186 days) · last repo commit 2026-03-02 · 1,038 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,311,233 downloads/mo, #4,073 on PyPI
Alternatives
Verify before relying
pip install cvxopt
from cvxopt import matrix, solvers
A = matrix([[1.0, -1.0], [1.0, 1.0]])
b = matrix([1.0, 2.0])
sol = solvers.qp(P, q, G, h)- Whether cvxopt's solver performance and numerical stability are suitable for your specific problem scale and precision requirements.
- Compatibility with other optimization frameworks or whether cvxopt's API and algorithm selection meet your workflow needs.
What it is and what it does
cvxopt is a mature Python package for solving convex optimization problems across linear, quadratic, and semidefinite programming domains. It provides low-level access to optimization algorithms and matrix data structures, making it suitable for researchers and practitioners who need fine-grained control over solver behavior and problem formulation.
The package is built on compiled C code for numerical performance and depends on standard linear algebra libraries (BLAS, LAPACK). It has no Python runtime dependencies, keeping the footprint minimal. The project is actively maintained, with recent commits and a stable API, though its GPLv3 license restricts use in proprietary closed-source applications.
Use it for
- Solve linear and quadratic programming problems in operations research or portfolio optimization workflows.
- Formulate and solve semidefinite programs for control theory, signal processing, or machine learning applications.
- Prototype convex optimization algorithms in research where direct access to solver internals is needed.
- Build optimization-based decision systems in academic or open-source projects where GPLv3 licensing is acceptable.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need convex optimization and accept GPLv3 licensing.
The package is production-stable, actively maintained, and has no Python dependencies. Install friction is moderate due to compiled components, but prebuilt wheels cover common platforms. Not suitable for proprietary closed-source projects due to GPLv3 copyleft requirements.
Install
cvxopt on PyPI
Before you install
Medium install friction due to compiled C components; wheels are available for Python 3.10–3.12 on macOS, Linux, and Windows, but source builds may require a C compiler and numerical libraries.
Requires a C compiler and numerical libraries (BLAS, LAPACK) for source builds; prebuilt wheels simplify installation on common platforms.
License in practice
Licensed under GNU General Public License v3, which requires that any derivative work or distribution must also be released under GPLv3 and provide source code access—a significant constraint for proprietary or closed-source projects.
Quickstart
pip install cvxopt
from cvxopt import matrix, solvers
A = matrix([[1.0, -1.0], [1.0, 1.0]])
b = matrix([1.0, 2.0])
sol = solvers.qp(P, q, G, h)
Verify before relying
- Whether cvxopt's solver performance and numerical stability are suitable for your specific problem scale and precision requirements.
- Compatibility with other optimization frameworks or whether cvxopt's API and algorithm selection meet your workflow needs.
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 186 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,311,233 / month, #4,073 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/StableIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: CProgramming Language :: PythonProgramming Language :: Python :: 3Topic :: Scientific/Engineering |
Evidence: cvxopt-1.3.3-cp310-cp310-macosx_15_0_arm64.whl; cvxopt-1.3.3-cp310-cp310-macosx_15_0_x86_64.whl; cvxopt-1.3.3-cp310-cp310-macosx_26_0_x86_64.whl; cvxopt-1.3.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; cvxopt-1.3.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; cvxopt-1.3.3-cp310-cp310-musllinux_1_2_aarch64.whl; cvxopt-1.3.3-cp310-cp310-musllinux_1_2_x86_64.whl; cvxopt-1.3.3-cp310-cp310-win_amd64.whl; cvxopt-1.3.3-cp311-cp311-macosx_15_0_arm64.whl; cvxopt-1.3.3-cp311-cp311-macosx_15_0_x86_64.whl; cvxopt-1.3.3-cp311-cp311-macosx_26_0_x86_64.whl; cvxopt-1.3.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; cvxopt-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; cvxopt-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl; cvxopt-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl; cvxopt-1.3.3-cp311-cp311-win_amd64.whl; cvxopt-1.3.3-cp312-cp312-macosx_15_0_arm64.whl; cvxopt-1.3.3-cp312-cp312-macosx_15_0_x86_64.whl; cvxopt-1.3.3-cp312-cp312-macosx_26_0_x86_64.whl; cvxopt-1.3.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
An agent finds packages by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language. Give your agent the search over MCP.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also clarabel · Mosek · nlopt · osqp · scs · pyomo · qpsolvers · quadprog · cvxpy-base · ecos