Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cvxpy fails to install on Python 3.12 #2269

Closed
AndreFCruz opened this issue Oct 23, 2023 · 23 comments
Closed

cvxpy fails to install on Python 3.12 #2269

AndreFCruz opened this issue Oct 23, 2023 · 23 comments

Comments

@AndreFCruz
Copy link

Describe the bug

Running pip install cvxpy fails when using Python 3.12

To Reproduce

conda create -n py312-cvxpy python=3.12
conda activate py312-cvxpy
pip install cvxpy

Output
Screen Shot 2023-10-23 at 12 09 34

Version

  • OS: macOS
  • CVXPY Version: latest

Additional context

  • I checked and it works fine using Python 3.11
  • I'm using an M1 mac.
@Transurgeon
Copy link
Collaborator

Transurgeon commented Oct 23, 2023

I found a thread for a similar issue here.
It seems like this is common for many Python 3.12 installations.
Thanks for pointing this out!

@enzbus
Copy link
Contributor

enzbus commented Oct 25, 2023

SCS compilation on Python 3.12 is work in progress, there's a PR open (bodono/scs-python#70). If you are on mac or linux this should work

pip install git+https://github.com/enzbus/scs-python
pip install cvxpy

enzbus added a commit to cvxgrp/cvxportfolio that referenced this issue Oct 31, 2023
This revision contains bug fixes regarding edge cases of back-tests with changing universes, which have been provided by github PRs #113 and #114. New test cases have been made for those edge cases. Then, we migrated the Python packaging to the new pyproject.toml system and are updating the rest of the development suite. We are improving the code quality overall using pylint (https://pylint.readthedocs.io/), an advanced Python syntax parser and static analysis system. The current Cvxportfolio overall pylint score is 9/10 (was a bit more than 8/10 for the last revision). We aim for maximum score, which ensures the highest code quality, readability, and maintainability. We are also improving test coverage, which is now at about 99%. Html documentation is also being improved and will eventually cover the whole library, including all internal interfaces and low-level objects. Lastly, we are sadly aware than Cvxportfolio can't currently be installed on Python 3.12, due to the removal of distutils from the Standard Library which broke the packaging of a sub-dependency package (see cvxpy/cvxpy#2269, bodono/scs-python#70, bodono/scs-python#69). A workaround exists, see cvxpy/cvxpy#2269. We are monitoring the situation and may redesign Cvxportfolio's dependency graph.
@stonebig
Copy link

stonebig commented Jan 6, 2024

any hope ? scs is now on pypi for Python-3.12.

@xuluze
Copy link

xuluze commented Jan 24, 2024

I could install cvxpy1.4.2 in Python 3.12 via pip install cvxpy==1.4.2 now (Windows 11). Though conda install -c conda-forge cvxpy didn't work.

@enzbus
Copy link
Contributor

enzbus commented Jan 27, 2024

You may retry now, the scs conda installer was just updated (conda-forge/scs-feedstock#38). Make sure you install the latest version there.

@wshanks
Copy link

wshanks commented Jan 27, 2024

@enzbus conda-forge/scs-feedstock#38 added scs 3.2.4 to conda-forge. 3.2.4 adds Python 3.12 support but it was not built in that PR. There is a follow up PR, conda-forge/scs-feedstock#40, adding the 3.12 build. Still, the 3.12 build should be available from conda-forge in the next couple hours (once that PR finishes building and gets seeded to the CDN).

@stonebig
Copy link

stonebig commented Feb 8, 2024

Having cvxpy-1.4.2 wheels on pypi for Python-3.12 would have been nice.

@RoyiAvital
Copy link

It still fails using pip on Windows.
The scs issue is closed as resolved.

@wshanks
Copy link

wshanks commented Feb 16, 2024

@RoyiAvital Can you share how it fails? There is now a 3.12 wheel for Windows at https://pypi.org/project/scs/3.2.4.post1/#files

@RoyiAvital
Copy link

@wshanks , I can share some screen shots of my failing installation (Few minutes ago) on Python 3.12.2:

image
image
image

I can share the whole text:

D:\Applications\WinPython\WPy64-31220\scripts>pip install --upgrade cvxpy
Collecting cvxpy
  Downloading cvxpy-1.4.2.tar.gz (1.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 4.3 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting osqp>=0.6.2 (from cvxpy)
  Downloading osqp-0.6.5-cp312-cp312-win_amd64.whl.metadata (1.8 kB)
Requirement already satisfied: ecos>=2 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (2.0.13)
Requirement already satisfied: clarabel>=0.5.0 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (0.6.0)
Requirement already satisfied: scs>=3.0 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (3.2.4.post1)
Requirement already satisfied: numpy>=1.15 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (1.26.4)
Requirement already satisfied: scipy>=1.1.0 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (1.12.0)
Requirement already satisfied: pybind11 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (2.11.1)
Collecting scipy>=1.1.0 (from cvxpy)
  Downloading scipy-1.11.4-cp312-cp312-win_amd64.whl.metadata (60 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB ? eta 0:00:00
Collecting qdldl (from osqp>=0.6.2->cvxpy)
  Downloading qdldl-0.1.7.post0.tar.gz (70 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.0/71.0 kB 3.8 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Downloading osqp-0.6.5-cp312-cp312-win_amd64.whl (293 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 293.4/293.4 kB 4.6 MB/s eta 0:00:00
Downloading scipy-1.11.4-cp312-cp312-win_amd64.whl (43.7 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.7/43.7 MB 8.7 MB/s eta 0:00:00
Building wheels for collected packages: cvxpy, qdldl
  Building wheel for cvxpy (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for cvxpy (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [438 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-312
      creating build\lib.win-amd64-cpython-312\cvxpy
      copying cvxpy\error.py -> build\lib.win-amd64-cpython-312\cvxpy
      copying cvxpy\settings.py -> build\lib.win-amd64-cpython-312\cvxpy
      copying cvxpy\version.py -> build\lib.win-amd64-cpython-312\cvxpy
      copying cvxpy\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy
      creating build\lib.win-amd64-cpython-312\setup
      copying setup\extensions.py -> build\lib.win-amd64-cpython-312\setup
      copying setup\versioning.py -> build\lib.win-amd64-cpython-312\setup
      copying setup\__init__.py -> build\lib.win-amd64-cpython-312\setup
      creating build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\atom.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\axis_atom.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\condition_number.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\cummax.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\dist_ratio.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\dotsort.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\errormsg.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\eye_minus_inv.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\gen_lambda_max.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\geo_mean.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\gmatmul.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\harmonic_mean.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\inv_prod.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\lambda_max.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\lambda_min.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\lambda_sum_largest.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\lambda_sum_smallest.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\length.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\log_det.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\log_sum_exp.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\matrix_frac.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\max.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\min.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\mixed_norm.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\norm.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\norm1.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\norm_inf.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\norm_nuc.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\one_minus_pos.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\perspective.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\pf_eigenvalue.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\pnorm.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\prod.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\ptp.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\quad_form.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\quad_over_lin.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\sigma_max.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\sign.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\stats.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\sum_largest.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\sum_smallest.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\sum_squares.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\suppfunc.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\total_variation.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\tr_inv.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\von_neumann_entr.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      copying cvxpy\atoms\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
      creating build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\cones.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\constraint.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\exponential.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\finite_set.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\nonpos.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\power.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\psd.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\second_order.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\utilities.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\zero.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      copying cvxpy\constraints\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
      creating build\lib.win-amd64-cpython-312\cvxpy\cvxcore
      copying cvxpy\cvxcore\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\cvxcore
      creating build\lib.win-amd64-cpython-312\cvxpy\expressions
      copying cvxpy\expressions\cvxtypes.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
      copying cvxpy\expressions\expression.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
      copying cvxpy\expressions\leaf.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
      copying cvxpy\expressions\variable.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
      copying cvxpy\expressions\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
      creating build\lib.win-amd64-cpython-312\cvxpy\interface
      copying cvxpy\interface\base_matrix_interface.py -> build\lib.win-amd64-cpython-312\cvxpy\interface
      copying cvxpy\interface\matrix_utilities.py -> build\lib.win-amd64-cpython-312\cvxpy\interface
      copying cvxpy\interface\scipy_wrapper.py -> build\lib.win-amd64-cpython-312\cvxpy\interface
      copying cvxpy\interface\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\interface
      creating build\lib.win-amd64-cpython-312\cvxpy\lin_ops
      copying cvxpy\lin_ops\canon_backend.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
      copying cvxpy\lin_ops\lin_constraints.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
      copying cvxpy\lin_ops\lin_op.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
      copying cvxpy\lin_ops\lin_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
      copying cvxpy\lin_ops\tree_mat.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
      copying cvxpy\lin_ops\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
      creating build\lib.win-amd64-cpython-312\cvxpy\problems
      copying cvxpy\problems\iterative.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
      copying cvxpy\problems\objective.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
      copying cvxpy\problems\param_prob.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
      copying cvxpy\problems\problem.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
      copying cvxpy\problems\xpress_problem.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
      copying cvxpy\problems\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\canonicalization.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\chain.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\cvx_attr2constr.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\eval_params.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\flip_objective.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\inverse_data.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\matrix_stuffing.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\reduction.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\solution.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\utilities.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      copying cvxpy\reductions\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
      creating build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\base_test.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\ram_limited.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\solver_test_helpers.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_atoms.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_benchmarks.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_complex.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_cone2cone.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_conic_solvers.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_constant.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_constant_atoms.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_constraints.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_convolution.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_copy.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_curvature.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_custom_solver.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_derivative.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_dgp.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_dgp2dcp.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_domain.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_dpp.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_dqcp.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_errors.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_examples.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_expressions.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_expression_methods.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_grad.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_gurobi_write.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_interfaces.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_KKT.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_kron_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_linalg_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_linear_cone.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_lin_ops.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_matrices.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_mip_vars.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_monotonicity.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_nonlinear_atoms.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_objectives.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_param_cone_prog.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_param_quad_prog.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_perspective.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_power_tools.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_problem.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_python_backends.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_qp_solvers.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_quadratic.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_quad_form.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_scalarize.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_semidefinite_vars.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_shape.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_sign.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_suppfunc.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_valinvec2mixedint.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_versioning.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\test_von_neumann_entr.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      copying cvxpy\tests\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
      creating build\lib.win-amd64-cpython-312\cvxpy\transforms
      copying cvxpy\transforms\indicator.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
      copying cvxpy\transforms\linearize.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
      copying cvxpy\transforms\partial_optimize.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
      copying cvxpy\transforms\scalarize.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
      copying cvxpy\transforms\suppfunc.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
      copying cvxpy\transforms\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
      creating build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\canonical.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\coeff_extractor.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\cvxpy_upgrade.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\debug_tools.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\deterministic.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\grad.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\key_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\linalg.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\performance_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\perspective_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\power_tools.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\replace_quad_forms.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\scopes.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\shape.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\sign.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\versioning.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      copying cvxpy\utilities\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
      creating build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\add_expr.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\affine_atom.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\binary_operators.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\bmat.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\conj.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\conv.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\cumsum.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\diag.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\diff.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\hstack.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\imag.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\index.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\kron.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\partial_trace.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\partial_transpose.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\promote.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\real.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\reshape.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\sum.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\trace.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\transpose.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\unary_operators.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\upper_tri.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\vec.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\vstack.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\wraps.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      copying cvxpy\atoms\affine\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
      creating build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\abs.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\ceil.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\elementwise.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\entr.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\exp.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\huber.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\inv_pos.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\kl_div.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\log.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\log1p.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\loggamma.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\logistic.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\log_normcdf.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\maximum.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\minimum.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\neg.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\pos.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\power.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\rel_entr.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\scalene.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\sqrt.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\square.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\xexp.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      copying cvxpy\atoms\elementwise\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
      creating build\lib.win-amd64-cpython-312\cvxpy\cvxcore\python
      copying cvxpy\cvxcore\python\canonInterface.py -> build\lib.win-amd64-cpython-312\cvxpy\cvxcore\python
      copying cvxpy\cvxcore\python\cvxcore.py -> build\lib.win-amd64-cpython-312\cvxpy\cvxcore\python
      copying cvxpy\cvxcore\python\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\cvxcore\python
      creating build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
      copying cvxpy\expressions\constants\callback_param.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
      copying cvxpy\expressions\constants\constant.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
      copying cvxpy\expressions\constants\parameter.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
      copying cvxpy\expressions\constants\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
      creating build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
      copying cvxpy\interface\numpy_interface\matrix_interface.py -> build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
      copying cvxpy\interface\numpy_interface\ndarray_interface.py -> build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
      copying cvxpy\interface\numpy_interface\sparse_matrix_interface.py -> build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
      copying cvxpy\interface\numpy_interface\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real
      copying cvxpy\reductions\complex2real\complex2real.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real
      copying cvxpy\reductions\complex2real\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
      copying cvxpy\reductions\cone2cone\affine2direct.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
      copying cvxpy\reductions\cone2cone\approximations.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone      copying cvxpy\reductions\cone2cone\exotic2common.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
      copying cvxpy\reductions\cone2cone\soc2psd.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
      copying cvxpy\reductions\cone2cone\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone
      copying cvxpy\reductions\dcp2cone\cone_matrix_stuffing.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone
      copying cvxpy\reductions\dcp2cone\dcp2cone.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone
      copying cvxpy\reductions\dcp2cone\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp
      copying cvxpy\reductions\dgp2dcp\dgp2dcp.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp
      copying cvxpy\reductions\dgp2dcp\util.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp
      copying cvxpy\reductions\dgp2dcp\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\discrete2mixedint
      copying cvxpy\reductions\discrete2mixedint\valinvec2mixedint.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\discrete2mixedint
      copying cvxpy\reductions\discrete2mixedint\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\discrete2mixedint
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
      copying cvxpy\reductions\dqcp2dcp\dqcp2dcp.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
      copying cvxpy\reductions\dqcp2dcp\inverse.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
      copying cvxpy\reductions\dqcp2dcp\sets.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
      copying cvxpy\reductions\dqcp2dcp\tighten.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
      copying cvxpy\reductions\dqcp2dcp\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl
      copying cvxpy\reductions\eliminate_pwl\eliminate_pwl.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl
      copying cvxpy\reductions\eliminate_pwl\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form
      copying cvxpy\reductions\qp2quad_form\qp2symbolic_qp.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form
      copying cvxpy\reductions\qp2quad_form\qp_matrix_stuffing.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form
      copying cvxpy\reductions\qp2quad_form\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\bisection.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\compr_matrix.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\constant_solver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\defines.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\intermediate_chain.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers      copying cvxpy\reductions\solvers\kktsolver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\solver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\solving_chain.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\utilities.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      copying cvxpy\reductions\solvers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\abs_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\aff_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\constant_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\equality_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\inequality_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\matrix_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\param_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\pnorm_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\psd_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\soc_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\variable_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      copying cvxpy\reductions\complex2real\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\entr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\exp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\geo_mean_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\huber_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\indicator_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\kl_div_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\lambda_max_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\lambda_sum_largest_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\log1p_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\logistic_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\log_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\log_det_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\log_sum_exp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\matrix_frac_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\mul_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\normNuc_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\perspective_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\pnorm_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\power_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\quad_form_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\quad_over_lin_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\rel_entr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\sigma_max_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\suppfunc_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\tr_inv_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\von_neumann_entr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\xexp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      copying cvxpy\reductions\dcp2cone\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\add_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\constant_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\div_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\exp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\eye_minus_inv_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\finite_set_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\geo_mean_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\gmatmul_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\log_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\mulexpression_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\mul_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\nonpos_constr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\norm1_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\norm_inf_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\one_minus_pos_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\parameter_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\pf_eigenvalue_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\pnorm_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\power_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\prod_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\quad_form_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\quad_over_lin_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\sum_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\trace_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\xexp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\zero_constr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      copying cvxpy\reductions\dgp2dcp\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\abs_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\cummax_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\cumsum_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\dotsort_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\maximum_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\max_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\minimum_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\min_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\norm1_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\norm_inf_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\sum_largest_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      copying cvxpy\reductions\eliminate_pwl\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
      copying cvxpy\reductions\qp2quad_form\canonicalizers\huber_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
      copying cvxpy\reductions\qp2quad_form\canonicalizers\power_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
      copying cvxpy\reductions\qp2quad_form\canonicalizers\quad_form_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
      copying cvxpy\reductions\qp2quad_form\canonicalizers\quad_over_lin_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
      copying cvxpy\reductions\qp2quad_form\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\cbc_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\clarabel_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\conic_solver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\copt_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\cplex_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\cvxopt_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\diffcp_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\ecos_bb_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\ecos_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\glop_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\glpk_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\glpk_mi_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\gurobi_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\mosek_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\nag_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\pdlp_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\scipy_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\scip_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\scs_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\sdpa_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\xpress_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      copying cvxpy\reductions\solvers\conic_solvers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\lp_solvers
      copying cvxpy\reductions\solvers\lp_solvers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\lp_solvers
      creating build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\copt_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\cplex_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\gurobi_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\osqp_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\piqp_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\proxqp_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\qp_solver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\xpress_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      copying cvxpy\reductions\solvers\qp_solvers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
      creating build\lib.win-amd64-cpython-312\cvxpy\utilities\cpp
      copying cvxpy\utilities\cpp\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities\cpp
      creating build\lib.win-amd64-cpython-312\cvxpy\utilities\cpp\sparsecholesky
      copying cvxpy\utilities\cpp\sparsecholesky\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities\cpp\sparsecholesky
      copying cvxpy\py.typed -> build\lib.win-amd64-cpython-312\cvxpy
      running build_ext
      building '_cvxcore' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for cvxpy
  Building wheel for qdldl (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for qdldl (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [73 lines of output]
      running bdist_wheel
      running build
      running build_ext
      Traceback (most recent call last):
        File "<string>", line 81, in build_extensions
        File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\subprocess.py", line 466, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\subprocess.py", line 548, in run
          with Popen(*popenargs, **kwargs) as process:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\subprocess.py", line 1026, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
        File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\subprocess.py", line 1538, in _execute_child          hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      FileNotFoundError: [WinError 2] The system cannot find the file specified

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 251, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\build_meta.py", line 404, in build_wheel
          return self._build_with_temp_dir(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\build_meta.py", line 389, in _build_with_temp_dir
          self.run_setup()
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 113, in <module>
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
          dist.run_commands()
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\normal\Lib\site-packages\wheel\bdist_wheel.py", line 368, in run
          self.run_command("build")
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\command\build.py", line 131, in run
          self.run_command(cmd_name)
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\command\build_ext.py", line 89, in run
          _build_ext.run(self)
        File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\command\build_ext.py", line 345, in run
          self.build_extensions()
        File "<string>", line 83, in build_extensions
      RuntimeError: CMake must be installed to build qdldl
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for qdldl
Failed to build cvxpy qdldl
ERROR: Could not build wheels for cvxpy, qdldl, which is required to install pyproject.toml-based projects

@wshanks
Copy link

wshanks commented Feb 16, 2024

Thanks @RoyiAvital. So scs is okay now, but qdldl (dependency of osqp which is a dependency of cvxpy) still has no wheel for Python 3.12. So the next step would be to ask if wheels for 3.12 could be added at https://github.com/osqp/qdldl-python. There is a conda-forge package for qdldl for Python 3.12 so it should be compatible.

(Alternatively you could try to set up the build system to build from source by installing cmake).

@wshanks
Copy link

wshanks commented Mar 8, 2024

@phschiele I noticed that you commented here that cvxpy will release this month with wheels for Python 3.12. I was curious if there was any overlap between the cvxpy and osqp teams to help get 3.12 wheels of qdldl released as well to allow installing cvxpy on 3.12 without building anything locally.

@RoyiAvital
Copy link

@wshanks , Even on conda-forge the install won't work (Though tried at the beginning of April).

@stonebig
Copy link

stonebig commented Apr 13, 2024

@wshanks , Even on conda-forge the install won't work (Though tried at the beginning of April).

if you are in a hurry, you can grab the .whl from here (minus one patch in waiting) https://github.com/cvxpy/cvxpy/actions/runs/8604826651/job/23580091820

With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Beginning upload of artifact content to blob storage
Uploaded bytes 1004790
Finished uploading artifact content to blob storage!
SHA256 hash of uploaded artifact zip is 7363d69e3816d785985b83[23](https://github.com/cvxpy/cvxpy/actions/runs/8604826651/job/23580091820#step:12:24)47ae939e03c091a18a7b618e816dee1180c633b1
Finalizing artifact upload
Artifact wheels-base-windows-2022-3.12.zip successfully finalized. Artifact ID 1395275020
Artifact wheels-base-windows-2022-3.12 has been successfully uploaded! Final size is 1004790 bytes. Artifact ID is 1395275020
Artifact download URL: https://github.com/cvxpy/cvxpy/actions/runs/86048[26](https://github.com/cvxpy/cvxpy/actions/runs/8604826651/job/23580091820#step:12:27)651/artifacts/1395275020

@wshanks
Copy link

wshanks commented Apr 13, 2024

@RoyiAvital Strange, it "works for me." You could perhaps open an issue at https://github.com/conda-forge/cvxpy-feedstock/issues with the error.

@h-vetinari
Copy link
Contributor

@wshanks , Even on conda-forge the install won't work (Though tried at the beginning of April).

We've had working cvxpy builds for 3.12 in conda-forge for a while (including successfully running the whole test suite). If you run into problems, please raise an issue on the feedstock - it's almost certainly a misconfiguration issue, or an unsupported use case (like mixing channels, which is fragile).

@RoyiAvital
Copy link

I will try again today.

@h-vetinari , Are you on Windows?

@h-vetinari
Copy link
Contributor

Conda-forge provides cvxpy builds for windows, and I also have a windows machine to test, so I guess that counts as a yes. ;-)

@RoyiAvital
Copy link

Hi, I retried now on Windows + Python 3.12 using conda-forge (I use Micro Mamba instead of Conda) and it works!

Thanks for the effort.

@phschiele
Copy link
Collaborator

phschiele commented Apr 16, 2024

We just released a patch that includes wheels for 3.12:
https://pypi.org/project/cvxpy/1.4.3/

Feel free to reopen if there are any remaining issues that we should take a look at with 3.12.

@wshanks
Copy link

wshanks commented Apr 17, 2024

I think that leaves qdldl as the only dependency without wheels for Python 3.12. I think it might have less demanding build time dependencies so maybe it is easy to pip install cvxpy on 3.12 now. Still I opened a PR to help enable wheel builds for 3.12 for qdldl here: osqp/qdldl-python#37.

@SteveDiamond
Copy link
Collaborator

qdldl wheels are up.

@SteveDiamond SteveDiamond reopened this Apr 18, 2024
@phschiele
Copy link
Collaborator

phschiele commented Apr 27, 2024

@SteveDiamond Looks like your comment has (accidentally) reopened the issue. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants