Consider publishing Python wheels of Ipopt #819
moorepants
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Dear Ipopt developers,
Users of Python could benefit from official binaries of Ipopt distributed through the Python Package Index (pypi.org). There are a number of Python packages that link to Ipopt, some of which package binaries of Ipopt in the PyPi binary format, wheel, and some that rely on the user to have installed Ipopt and made it accessible to the linker. The binary versions of Ipopt on PyPi vary in quality, legality, and usability with unknown compilation flags, missing licenses, lack of operating system coverage, etc.
In the conda package manager, we have packaged Ipopt on conda forge for all main operating systems and it is available as a default binary for other packages to link against. This model works very well due to the nature of conda and conda-forge's design, which focuses on shared library reuse (similar to Debian and other Linux distros' designs). PyPi, on the other hand, bundles all binary libraries in each wheel which results in a less organized and unified situation. But if there were an official Ipopt wheel on PyPi, everyone would probably use it and link against it.
VTK is an example C++ library that builds wheel binaries of VTK to make it easy for Python wrappers to link against the compiled shared library. I think a similar model for Ipopt would improve the state of Ipopt's use in Python packages.
Creating and maintaining Python wheel binaries of Ipopt takes time and effort, of course. You'd also have to likely bundle Ipopt's dependencies as binaries which you may not want to do. Maybe you all will leave this for others to scratch their itch, but I wanted to propose the idea in case there was a lack of awareness of the possibilities. Maybe someone from the Ipopt community would be willing to maintain pure Ipopt wheels on PyPi. This would make it much easier for Python users to use Ipopt. I would do it if I had the time and expertise, but I'm not in the position to do so right now.
Sincerely,
Jason
Beta Was this translation helpful? Give feedback.
All reactions