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 > >
