numenta / nupic-legacy

Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex.
http://numenta.org/
GNU Affero General Public License v3.0
6.34k stars 1.56k forks source link

pip install nupic #1246

Closed rhyolight closed 9 years ago

rhyolight commented 10 years ago

Depends on #408.

Users should simply be able to install NuPIC on all systems with pip, simply by typing pip install nupic.


rhyolight commented 10 years ago

CC @david-ragazzi @oxtopus

david-ragazzi commented 10 years ago

Ok, this week hopefully I will introduce NuPIC Studio and then I'll have more free time to solve these and other issues..

And sorry again for I'm not able to help you these days, @rhyolight .. The problem is that I really am without time.. :-(

rhyolight commented 10 years ago

That's ok David. We don't expect you to dedicate your entire life to NuPIC (yet) ;). We will continue working on this and when you have time, you can jump in.


Matt Taylor OS Community Flag-Bearer Numenta

On Sat, Aug 30, 2014 at 7:51 AM, David Ragazzi notifications@github.com wrote:

Ok, this week hopefully I will introduce NuPIC Studio and then I'll have free time to solve these issues..

And sorry again for I'm not able to help you these days.. The problem is that I really am without time.. :-(

— Reply to this email directly or view it on GitHub https://github.com/numenta/nupic/issues/1246#issuecomment-53960475.

oxtopus commented 10 years ago

Here's my proposal at a high level:

  1. Remove CMake and git dependency from nupic (leaving nupic.core as-is)
  2. Pull in the platform-specific nupic.core binary from an archive we maintain (travis artifact) for the platforms we officially support during build.
  3. Build swig wrappers using standard setuptools/build_ext functionality, which will automatically be run during python setup.py build|install|develop

Under this scenario, the end user need only, Python, a compiler, and linker, which they would need anyway for the other python dependencies. The nupic build should go faster, too, since nupic.core is bundled as a binary and won't need to be built.

Meanwhile, the end user should still be able to optionally use git to obtain nupic.core source and build with cmake separately.

cc: @scottpurdy

scottpurdy commented 10 years ago

@oxtopus - +1 to compiling nupic.core on its own and using setuptools extension functionality rather than cmake for the nupic build.

A few clarification questions:

oxtopus commented 10 years ago

@scottpurdy The current nupic build process clones nupic.core, runs cmake and make, and then copies the binaries into its own build directory before continuing with its own build. I'm envisioning that the binaries will be downloaded via http into the build directories, bypassing the clone+cmake+make process. Should the user want to do that on their own, then they'd need to specify the location where nupic.core can be found.

It'd be nice if the user could do a cmake + make + make install in nupic.core, and then just let nupic use it if it finds it on the path, but I don't think nupic.core is ready for that yet.

rhyolight commented 9 years ago

Fixed in 0.1.