安装

CVXPY支持在Linux、macOS和Windows上的Python 3。您可以使用 pip或conda进行安装。您可能希望将 安装隔离在一个 virtualenv 或 一个conda环境中。

pip

(仅限Windows)下载适用于Python 3的Visual Studio构建工具 ( 下载 , 安装说明 )。

(仅限macOS)安装Xcode命令行工具。

(可选)创建并激活虚拟环境。

使用 pip _安装CVXPY:

pip install cvxpy

你可以将求解器名称作为“extras”添加;然后 pip 会安装需要的额外的Python包。

pip install cvxpy[CBC,CVXOPT,GLOP,GLPK,GUROBI,MOSEK,PDLP,SCIP,XPRESS]

conda

conda 是一个用于包和环境管理的系统。

(仅限Windows)下载 Visual Studio build tools for Python 3.

  1. 安装 conda

2. 创建一个新的conda环境,

     conda create --name cvxpy_env
     conda activate cvxpy_env

安装或激活一个现有的环境
  1. conda-forge 安装 cvxpy

    conda install -c conda-forge cvxpy
    

从源码安装

我们强烈推荐在安装CVXPY源代码时使用一个新的虚拟环境(virtualenv或conda)。

CVXPY有以下依赖项:

所有的必需包都会随着CVXPY一起自动安装。

按照以下步骤从源码安装CVXPY:

  1. 克隆官方的 CVXPY git repository ,或者一个新创建的 CVXPY 仓库分支。

  2. 切换到克隆目录的顶层。

  3. 如果你想使用可编辑的源代码进行 CVXPY 开发,请运行以下命令:

    pip install -e .
    

否则,请运行以下命令:

pip install .

使用 Codespaces

我们为 GitHub Codespaces 提供支持, 通过 devcontainers 提供了预配置的 CVXPY 开发环境。 要开始使用,请在 CVXPY 仓库上点击 “Code” 按钮,然后选择 “Open with Codespaces”。

适用于 Apple M1 的用户

Apple M1 用户在使用上述命令安装 CVXPY 时遇到了一些困难。 这个问题部分源自 CVXPY 的 pyproject.toml 配置错误,在 CVXPY 1.1.19 和 1.2.0 中已经修复。 如果你使用了这些版本(或更高版本),那么上述命令应该可以工作, *前提是*(1)你已经通过 Homebrew 安装了 cmake,而且(2)你有一个 ECOS 2.0.5 的二进制包。 cmake 的需求源于 OSQP,而在 M1 机器上似乎存在构建较新版本 ECOS 的问题。 有关更多信息,请参阅 CVXPY 仓库中的 此评论 和 ECOS 仓库中的 此问题

运行测试套件

CVXPY 附带了一个广泛的测试套件,在安装了 pytest 后可以运行。 如果从源代码安装,切换到仓库根目录并运行以下命令:

pytest

如果没有从源代码安装 CVXPY,请使用以下命令运行测试套件。

pytest --pyargs cvxpy.tests

使用CVXOPT和GLPK支持进行安装

CVXPY支持 CVXOPT 求解器。 此外,通过CVXOPT,CVXPY还支持 GLPK 求解器。在 大多数平台 上, CVXOPT 与GLPK捆绑在一起。在这些平台上,只需使用以下命令安装CVXOPT即可同时获得对CVXOPT和GLPK的支持:

pip install cvxopt

在其他平台上,按照以下步骤安装CVXPY及其带有GLPK支持的依赖项:

  1. 安装`GLPK <https://www.gnu.org/software/glpk/>`_。我们推荐从源代码安装最新版本的GLPK,或者在Ubuntu上使用apt-get,OS X上使用homebrew等软件包管理器进行安装。

  2. 使用GLPK绑定安装 CVXOPT

    CVXOPT_BUILD_GLPK=1
    CVXOPT_GLPK_LIB_DIR=/path/to/glpk-X.X/lib
    CVXOPT_GLPK_INC_DIR=/path/to/glpk-X.X/include
    pip install cvxopt
    
  3. 按照标准安装程序安装CVXPY及其其余的依赖项。

使用GUROBI进行安装

CVXPY支持GUROBI求解器。 安装版本7.5.2或更高版本的GUROBI,以便你可以在Python中 import gurobipy 。 请参考 GUROBI 网站上的安装说明。

使用MOSEK进行安装

CVXPY支持MOSEK求解器。 只需安装MOSEK,以便你可以在Python中 import mosek 。 请参考 MOSEK 网站上的安装说明。

使用XPRESS进行安装

CVXPY支持FICO Xpress求解器。 只需安装XPRESS,以便你可以在Python中 import xpress 。 请参考 Xpress Python documentation 页面上的安装说明。

使用Cbc (Clp, Cgl)进行安装

CVXPY支持 Cbc 求解器(包括Clp和Cgl),通过 cylp 提供支持。 只需按照 instructions 中的说明安装cylp及其相应的先决条件,以便你可以在Python中导入该库。

安装支持COPT的CVXPY

CVXPY支持COPT求解器。 只需安装COPT,然后您就可以在Python中 import coptpy 。 参见 COPT 发行页面获取安装说明。

安装支持CPLEX的CVXPY

CVXPY支持CPLEX求解器。 只需安装CPLEX,然后您就可以在Python中 import cplex 。 请访问 CPLEX 网站获取安装说明。

安装支持SDPA的CVXPY

CVXPY支持SDPA求解器。 只需安装SDPA for Python,然后您就可以在Python中 import sdpap 。 请访问 SDPA for Python 网站获取安装说明。

安装支持SDPT3的CVXPY

sdpt3glue package 允许您使用CVXPY建模问题并使用SDPT3求解。

安装支持NAG的CVXPY

CVXPY支持NAG求解器。 只需安装NAG,然后您就可以在Python中 import naginterfaces 。 请访问 NAG 网站获取安装说明。

使用GLOP和PDLP支持进行安装

CVXPY支持GLOP和PDLP求解器。这两个求解器都是由开源的 OR-Tools 包提供的。 安装OR-Tools,以便您可以在Python中运行 import ortools。要求OR-Tools版本必须为9.3或更高。

使用SCIP支持进行安装

CVXPY通过 pyscipopt Python包支持SCIP求解器。 有关安装说明,请参阅 PySCIPOpt Github页面。

CVXPY的SCIP接口不能可靠地恢复连续问题的对偶变量。如果您需要连续问题的对偶变量,您需要使用其他求解器。我们欢迎对SCIP接口进行其他贡献,以便在连续问题中恢复约束的对偶变量。

使用SCIPY支持进行安装

CVXPY支持SCIpy求解器用于LP和MIP。 这需要Python中的 SciPy 包,它应该已经安装,因为它是CVXPY的要求之一。 SciPy 的”interior-point”和”revised-simplex”实现是用Python编写的,并且始终可用。 然而,这个求解器的主要优点是它能够使用由C++编写的 HiGHS LP和MIP求解器。 HiGHS LP求解器与 SciPy 1.6.1及更高版本捆绑在一起。 HiGHS MIP求解器与1.9.0及更高版本捆绑在一起。

使用CLARABEL支持进行安装

CVXPY支持CLARABEL求解器。 只需安装CLARABEL,以便您可以在Python中 import clarabel 。 有关安装说明,请参阅 CLARABEL 网站。

Install with PIQP support

CVXPY supports the PIQP solver. Simply install PIQP such that you can import piqp in Python. See the PIQP website for installation instructions.

使用PROXQP支持进行安装

CVXPY支持PROXQP求解器。 只需安装PROXQP,以便您可以在Python中 import proxsuite 。 有关安装说明,请参阅 proxsuite 的Github页面。 请注意,默认情况下,PROXQP使用稠密矩阵表示问题数据。 您可以通过在调用 problem.solve 时设置 backend = 'sparse' 来获得更好的性能。

无需默认求解器安装

CVXPY还可以在没有默认求解器依赖项的情况下安装。 如果只打算使用非默认求解器,则这可能很有用。

无求解器的安装版本 cvxpy-base 目前可以通过pip和conda安装。

使用pip安装:

pip install cvxpy-base

使用conda安装:

conda install cvxpy-base