Sorry, but mine is quite experimental and not (yet) in PyPI, it’s the one I’ve linked to in the other thread:
https://bitbucket.org/kfj/python-vspline.
In a nutshell, install vigraimpex-dev from your distro, install NumPy, pip-install cppyy, clone my repo and import the bspline folder in it. In long:
So far I’ve not uploaded my module it to PyPI because I couldn’t quite figure out how to formulate the dependency from the two C++ libraries involved, short of copying (a large part of) them in whole. So the python module requires an install of vigra (libvigraimpex-dev package on debian, this is the C++ library, not it’s python module). If this is problematic, I may be able to add a small set of vigra headers to the python module - all I use from vigra is it’s array handling and small aggregates.
If you want to invoke explicit SIMD code, it will also require the vc-dev package, or better, a build of Vc from source, picking the 1.4 branch and subsequently installing it. Vc is optional - vspline will fall back to it’s own SIMD backend if Vc is not present, which is a bit slower.
On top of that, cppyy needs to be installed on your system, I’d recommend pip-installing that into your python3 environment or using a virtualenv for it - cppyy is still evolving, and getting the latest via pip will probably be miles ahead of what your distro offers. And, of course, you’ll need NumPy.
Then you can git-clone the python-vspline repo to wherever you like; if you want to have the python module ready to import, either run your session from the repo’s root or copy the ‘bspline’ folder to where your python3 can import it. To work out if the module is readily accessible, try
import bspline
in a python3 session (if your python has the ‘bspline’ module from PyPI, rename the ‘bspline’ folder to something else and import that, or uninstall the module from PyPI first), and if this succeeds, my example julia session should also work.
The python module is configurable: see config.py in the bspline folder, where you can set a few options in the first few lines. As it comes from the repo, it will not require Vc, and it won’t rely on precompiled binary code, which you might obtain by running the makefile in the bspline folder, which will deposit the shared libs right there. Precompiled binary will reduce warm-up times, slotting in machine code rather than JITting the C++ code with cling. Use of Vc will be faster, but not dramatically so - you might reserve that for speed-testing if you want to see vspline’s full potential.
Sorry for the complicated setup, consider that ‘teething problems’. If my instructions don’t work for you, please get back to me.