Currently Supported Platforms:
- 64-bit Linux
- 64-bit Windows
- Mac OS X
Simply follow the installation instructions in the README.
Compiling from Source Code
Some of these guides have not been updated for different platforms. If you find discrepancies, please update.
You will need to install the following dependencies in order to compile
- Python 2.7 & development headers
- Compiler toolchain with support for C++11 such as GCC == 4.8 (Linux-only), MinGWPy GCC (Windows-only), or llvm/clang
If you’re only interested in using NuPIC, you don’t need a GitHub account to get a read-only checkout. You don’t even need git. If you simply want to download the latest zip file with the complete source code, you can do so by following these links and extracting the resulting files to your files system:
If you want to use git:
- Follow the Github instructions to set up git.
- Clone the nupic.core repository:
git clone https://github.com/numenta/nupic.core.git
- Clone the nupic repository:
git clone https://github.com/numenta/nupic.git
NuPIC is a pure python project, and [NuPIC Core](NuPIC Core is a C++ project with SWiG Python bindings that generates the
nupic.bindings python extension. NuPIC depends upon this module for faster algorithm performance. All HTM algorithms are implemented in both places (Python and C++).
Move into the NuPIC installation directory and run the following command to build and install NuPIC onto your system:
cd $NUPIC python setup.py develop --user
If you get a gcc exit code 1, you may consider running this instead:
CC=clang CXX=clang++ python setup.py develop --user
If you are installing on Mac OS X, you should add the instruction
ARCHFLAGS="-arch x86_64" before the python call:
ARCHFLAGS="-arch x86_64" python setup.py develop --user
Note: In the above instructions we are relying on the
--userflag to install to a location in your home directory. Doing this, you may need to add this location to your
Implicit in calling
python setup.py develop, a release of
nupic.bindings will be downloaded from https://pypi.python.org/pypi/nupic.bindings/ that matches the version specified in
requirements.txt. If, prior to installing
nupic, you download, build, and install
nupic.bindings from source, then you will have a
pre-release version installed, as indicated by the
.dev0 suffix in the version. The
nupic installation process is cognizant of this and will not attempt to install
nupic.bindings in the presence of a pre-release version and it is up to you, as the developer, to upgrade or downgrade
nupic.bindings to match (or not, if you prefer).
If, after installing
nupic without having already downloaded, built, and installed
nupic.bindings from source and you decide to do so, you will need to explicitly remove the
nupic.bindings release installed by
nupic by uninstalling NuPIC. Subsequent attempts to install, or re-install
nupic will bypass the
nupic.bindings installation process, and it is up to you to upgrade
Once it is installed, you can import NuPIC library to your python script using:
nupic.bindings was installed properly as well, try running:
This package uses the math module from
nupic.bindings, and will fail if not installed properly.
For examples, tutorials, and screencasts about using NuPIC, see the Using NuPIC wiki page.
nupic repo is directly dependent on
And the Platform-Specific Build Instructions section below for further information.
If you are going to run tests, you might need to add
py.test to your
$PATH for tests to run. This will be in different locations depending on your python environment, so we’ll leave this up to you. Then you can run tests with the following command:
./scripts/run_nupic_tests.py [-u] [-i] [-w] [-a]
The options are for
-u unit tests,
-i integration tests,
-w swarming tests, and
-a all tests. Swarming tests require MySQL.
Platform-Specific Build Instructions
Separate instructions are available for Running NuPIC on:
- Linux, OSX, and Windows, using Docker
- Ubuntu Linux
- Raspberry Pi
- Cloud VPS - Amazon EC2, Google GCE, GROK
- Crouton (Ubuntu), Chromebook
For advanced build options, see Development Tips.
Using an IDE
See our Development Tips wiki page for details.
To run the tests:
- Run any test project from your IDE (check
outputpanel to see the results).