Hello NuPIC,

The question below from Divyang has been coming up a lot recently in
different forms. I hope to clear this up a bit in this post.

There are two ways to install NuPIC:

1. from binary files
2. compile it all yourself

# Binary Versions

Installing from binary files requires python and pip, and the instructions
are different for OS X and Linux (see README). When you install this way,
you get the latest versions we have available on pypi, which is an online
python module repository type thing. You can see the latest versions
available:

- https://pypi.python.org/pypi/nupic (currently 0.3.6)
- https://pypi.python.org/pypi/nupic.bindings (currently 0.2.7)

The reason we need to build these binary files is because we compile C++
code in addition to python. Python is an interpreted language, so it can
run on any OS without a compile step where the python environment exists.
However, the C++ code must be compiled on the same computer architecture as
the system where it is installed. That is why we have binary files for
Windows, Linux, and OS X on pypi.

NuPIC is entirely Python. "nupic.bindings" is a python module that contains
the compiled C++ within "nupic.core" and the python bindings so the C++
code can be executed from within python. "nupic.core" is all the C++.

If you install from binary, there should be no errors about versions,
because the NuPIC version you install from pypi will know what version of
"nupic.bindings" it needs to function, and that will be subsequently
installed from pypi as well.

# Compiling Yourself

There are only two reasons you might want to compile yourself:

1. You want to tweak some of the code and see what happens
2. You can't get a binary installation to work

When compiling yourself, you are usually working with the latest code
that's been committed. The version numbers you'll run into will have a
".dev0" suffix attached to them, meaning they are development versions or
"release candidates". For example, if you have compiled from the latest
codebase, your version strings will look like this today:

nupic 0.3.7.dev0
nupic.bindings 0.2.8.dev0

If you choose to compile both nupic.core and NuPIC on your own, you have
control over what versions of each software you build, which can lead to
some confusion. For example, if you do not have the latest nupic code
checked out, but you do have the latest nupic.core code, these versions may
not be compatible. For details about this linkage between nupic/nupic.core
and how is is managed by our build system, see [1].

The simplest thing to do to ensure your repos are synced is to look at the
".nupic_modules" file in the root of the nupic directory, which looks
something like this:

# Default nupic.core dependencies (override in optional .nupic_config)
NUPIC_CORE_REMOTE = 'git://github.com/numenta/nupic.core.git'
NUPIC_CORE_COMMITISH = '621a1b7fb3d0ff4ff3d2358a782095350945c266'

The "NUPIC_CORE_COMMITISH" is the SHA that needs to be checked out and
built in nupic.core. It is the exact point in the code history that this
version of NuPIC works well with. So to get to the right nupic.core
version, you must go into the nupic.core repository you have checked out
locally and run:

    git checkout 621a1b7fb3d0ff4ff3d2358a782095350945c266

Remember, this is just an example, and your SHA will be different in the
future.

I hope this doesn't cause more confusion in the community. I'm very happy
to take any follow up questions about this and help you get things running
properly.

[1] https://github.com/numenta/nupic/wiki/NuPIC's-Dependency-on-nupic.core

Regards,
---------
Matt Taylor
OS Community Flag-Bearer
Numenta

On Mon, Jan 11, 2016 at 9:32 PM, Divyang Shah via nupic <
[email protected]> wrote:

>
>
> ---------- Forwarded message ----------
> From: Divyang Shah <[email protected]>
> To: "[email protected]" <[email protected]>
> Cc:
> Date: Tue, 12 Jan 2016 05:19:02 +0000 (UTC)
> Subject: numenta anomaly detection setup & run
> Hi,
> can anyone suggest me with how to setup and run anomaly detection in
> numenta.
> I have tried but it cretes problem in bindings.
> I 0.2.7 version of bindings and when it tries to update it to 0.2.8-dev
> version it can't find that version and it stops.
> so, any suggestion or step-by-step instruction to make it running?
>
> thanks,
> Divyang Shah
>
>
  • About NuPIC / NuPIC Core version compatibility Matthew Taylor

Reply via email to