Same approach as Michael, maybe you should go for a curve that does have the specificity of passing through every point (e.g. Catmull-Rom, kind of a simplified version of hermite, both light and super easy to implement - the wiki page has everything you need ). From there, you can try to approximate a nurbs curve out of it (doing it the other way around seems pretty straight forward :
https://forum.libcinder.org/topic/creating-catmull-rom-spline-from-the-bspline-class).
Likewise, I'd advice you create your own nurbsCurve object with only what you need, and not necessarily use the maya tools. Again, the wiki page about NURBS has the exact formula (
https://fr.wikipedia.org/wiki/NURBS =p ), you just need to translate it into python (basically a cox-deboor recursive algorithm, the internet is full of examples and tutorials about it)
Alternatively, if you work in cpp, you can find pretty much everything you need with open source libs for generating curves, converting curves, etc...
Finally, depending on your needs, maybe you don't even need to stick to a NURBS curve, and can go for much lighter curves ? (again, catmull-rom for instance ! ) ?