NuPIC & Python 2 end of life

Since NuPIC 1.0, when Numenta starting focusing entirely on research, we have had NuPIC (Python) and NuPIC Core (C++) in maintenance mode.

As I’m sure you’re all aware, NuPIC is largely written in Python 2.7. You may also be aware that Python 2.7 will reach end of life on January 1st, 2020 and won’t be maintained after that date.

  • Numenta will not be upgrading NuPIC to Python 3. Because of legacy bindings between NuPIC and Python 2.7, upgrading NuPIC to Python 3 is a non-trivial task. The NuPIC project has been in maintenance mode for almost two years; it will remain in maintenance mode, with no plans to upgrade.
  • Current environments that run NuPIC will continue to work as long as Python environments are not updated. Users of NuPIC will need to ensure a Python 2.7 environment exists for any further deployments.
  • For future HTM-related work in Python 3, please refer to the community fork of NuPIC, htm.core, which has Python 3 bindings.

Other Resources

While we are not upgrading NuPIC, we are investigating upgrading other isolated resources to Python 3. These include:

  • NAB scoring
  • nupic.core bindings
  • htmresearch

HTM in Python 3?

We need a viable way to run HTMs in Python 3, and today we don’t have one. I think the community fork is moving in the right direction, unfettered by the challenges of maintaining a legacy codebase and adhering to Numenta oversight and code review. I want to encourage all of you to keep working in this direction, and in fact I plan on working directly with the fork for future community projects.