Should we make NuPIC python 3 compliant?


So this issue got me thinking:

The bigger question is:

Should we have an initiative to make NuPIC python 3 compliant?

  • YES
  • NO
  • it’s not that simple!

0 voters

If you said “it’s not that simple”, please explain! :wink:

Nupic.Core C# Bindings
NuPIC installation failure on Ubuntu 16.04.2 LTS
Nupic installation alongside opencv on the envPython3 problem
Python 3 support (revisited)

By the way, this is something I think we should do a bit at a time, tracking what has been updated as we go. It would be a long-standing issue, and we might want some rules to prevent giant pull requests.


Not updating to Python 3 eventually is not really an option, IMO. It must happen. It’s only a matter of when and that clock is already ticking. I suspect when the OS’s ship Python 3 by default it will be unavoidable, but it’d be nice if we gave ourselves a head start. To put that into perspective, Canonical reports their Python 3 priorities at and on windows, you must be running Python 3 to take advantage of the modern visual studio toolchain ( Who knows what’s happening on macOS, but you can safely bet that a future release will abruptly and without warning switch to Python 3 as the default version. Lack of support for python 3 has already made our own efforts on windows more difficult.


I’d also like to see python 3 compliance. A few notes:

  • Python 3 has significant performance improvements.
  • Most popular libraries are now python 3 compliant
  • There’s a bunch of tools for automating large parts the conversion process
  • To be a relevant python tool, nupic will need to keep with the times.


Any news on this issue ?


I’m not aware that support for Python 3 has been formally prioritized. IPython [recently dropped support for Python 2] (, so hopefully that will add some external pressure.


Ok, I hope too. Python is going to be EOL and as said all projects switch to python3.

Thanks for your fast reply!


Hey Matt, just completed Jeff’s book and your HTM school lectures. Awesome stuff. Could you please update us on Python 3. :slight_smile:


Unfortunately, there are no plans for Numenta to update NuPIC to python 3. We are focusing all our engineering efforts on research.

However, if someone wants to fork NuPIC into a python 3 compliant version, that would be fine!


I’m using NuPIC to learn Python, so I’ll take a crack at it. Should be a good way to help solidify my understanding of the language. Having a newb to a language to port code is probably not the best idea though :blush:. Could be at least a good starting point and have some seasoned Python experts come in and clean it up afterwards.


I can give a look if you are in trouble !


I don’t use NuPIC, but my two cents as someone who does a very large amount of python programming: python3 compliance (i.e. making sure the code runs on python3) is a good idea. But requiring features unique to python3 is not. The compatibility differences between the two versions are the biggest source of friction in my workflow, when I’m integrating other machine learning researchers’ code with my own. So my opinion on these questions is that where at all possible (which is everywhere), write code that works in both versions of the language.


In case you needed more motivation to migrate to python3, numpy (used heavily by nupic) is losing py2 support in 2020:


I’m exploring the possibility to move all python code to boost::python. I’m in contact with one of the developers and he told me that boost python supports version 2.7 and 3.x.

There even is a numpy extension:

Does anyone have a good reason not to do that?


A post was split to a new topic: Proposal to introduce pybind for move toward Python 3 compatibility

HTM Hackers' Hangout - Dec 1, 2017