osqp / osqp-python

Python interface for OSQP
https://osqp.org/
Apache License 2.0
109 stars 41 forks source link

Hard to install on Python 3.10 due to missing qdldl wheels #68

Closed cdiener closed 2 years ago

cdiener commented 2 years ago

Even though osqp has wheels for Python 3.10 it depends on qdldl which does not.

imciner2 commented 2 years ago

@bstellato @vineetbansal I thought we statically linked QDLDL into the OSQP library, so why would there be a need for QDLDL to have wheels to run OSQP?

vineetbansal commented 2 years ago

@imciner2 - looks like the python wrappers are using import qdldl directly at: https://github.com/osqp/osqp-python/blob/696e1a11b92f8e1ed67551c7c42710ff2cba1f75/src/osqp/interface.py#L14

This has to do with the investigations into the derivative that are also currently part of the master branch. See: https://github.com/osqp/osqp-python/blob/696e1a11b92f8e1ed67551c7c42710ff2cba1f75/src/osqp/interface.py#L388

Thus we have a dependency on qdldl defined in our pyproject.toml. Perhaps we can disable this derivative calculation in master for now (and it's associated unit test)?

In any case, on python 3.10, at least on Linux, pip is able to compile the qdldl to produce qdldl-0.1.5.post0-cp310-cp310-linux_x86_64.whl which is usable, indicating it may not be a big deal to support python 3.10 wheels for qdldl after all - I feel like that may be an easy and the proper solution here.

vineetbansal commented 2 years ago

Hi @cdiener - we've now released python 3.10 wheels for qdldl on pypi (for linux/mac/windows), and will continue to do so for any future releases. I'm closing this issue, but feel free to open it in case I missed something.

cdiener commented 2 years ago

Awesome, thank you!