cvxpy icon indicating copy to clipboard operation
cvxpy copied to clipboard

`cvxpy` fails to install on Python 3.12

Open AndreFCruz opened this issue 1 year ago • 11 comments

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.

AndreFCruz avatar Oct 23 '23 10:10 AndreFCruz

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!

Transurgeon avatar Oct 23 '23 15:10 Transurgeon

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

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

enzbus avatar Oct 25 '23 08:10 enzbus

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

stonebig avatar Jan 06 '24 13:01 stonebig

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.

xuluze avatar Jan 24 '24 06:01 xuluze

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

enzbus avatar Jan 27 '24 13:01 enzbus

@enzbus https://github.com/conda-forge/scs-feedstock/pull/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, https://github.com/conda-forge/scs-feedstock/pull/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).

wshanks avatar Jan 27 '24 15:01 wshanks

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

stonebig avatar Feb 08 '24 21:02 stonebig

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

RoyiAvital avatar Feb 16 '24 18:02 RoyiAvital

@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

wshanks avatar Feb 16 '24 19:02 wshanks

@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

RoyiAvital avatar Feb 16 '24 19:02 RoyiAvital

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 avatar Feb 16 '24 20:02 wshanks

@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.

wshanks avatar Mar 08 '24 15:03 wshanks

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

RoyiAvital avatar Apr 13 '24 19:04 RoyiAvital

@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

stonebig avatar Apr 13 '24 19:04 stonebig

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

wshanks avatar Apr 13 '24 19:04 wshanks

@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).

h-vetinari avatar Apr 14 '24 02:04 h-vetinari

I will try again today.

@h-vetinari , Are you on Windows?

RoyiAvital avatar Apr 14 '24 10:04 RoyiAvital

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

h-vetinari avatar Apr 14 '24 12:04 h-vetinari

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.

RoyiAvital avatar Apr 15 '24 07:04 RoyiAvital

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.

phschiele avatar Apr 16 '24 21:04 phschiele

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: https://github.com/osqp/qdldl-python/pull/37.

wshanks avatar Apr 17 '24 16:04 wshanks

qdldl wheels are up.

SteveDiamond avatar Apr 18 '24 22:04 SteveDiamond

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

phschiele avatar Apr 27 '24 20:04 phschiele