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

module compiled against API version 9 but this version of numpy is 7 -- two versions of numpy colliding #648

Closed breznak closed 9 years ago

breznak commented 10 years ago

tests/unit/py2/nupic/data/helpers_test.py:35: HelpersTest.testGetDataDirs FAILED

================================ FAILURES ============ ____ HelpersTest.testGetDataDirs ____ self =

def testGetDataDirs(self):
  dd =  _getDataDirs()
  dd = zip(*dd)[0]

  # Make sure the local data is there
  self.assertTrue(("data") in dd)
  # Make sure there are no duplicates
self.assertEqual(len(set(dd)), len(dd))

E AssertionError: 3 != 13

tests/unit/py2/nupic/data/helpers_test.py:42: AssertionError !!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!! =========== 1 failed, 76 passed, 6 skipped in 6.92 seconds =====

Hi,

I didn't run the run_tests.sh in a while so I can't be helpful much in when it got introduced. I'm suprised it didn't trigger in Travis, but this has just occured to me.

Env: python 2.7, gcc 4.8, linux,

htmtest and testeverithing run fine,

rhyolight commented 10 years ago

Interesting, this test passed on the last travis run:

https://travis-ci.org/numenta/nupic/jobs/18811039#L1144


Matt Taylor OS Community Flag-Bearer Numenta

On Thu, Feb 13, 2014 at 8:40 AM, breznak notifications@github.com wrote:

tests/unit/py2/nupic/data/helpers_test.py:35: HelpersTest.testGetDataDirs FAILED

================================ FAILURES ============ ____ HelpersTest.testGetDataDirs ____ self =

def testGetDataDirs(self): dd = _getDataDirs() dd = zip(*dd)[0]

Make sure the local data is there

self.assertTrue(("data") in dd)

Make sure there are no duplicates

self.assertEqual(len(set(dd)), len(dd))

E AssertionError: 3 != 13

tests/unit/py2/nupic/data/helpers_test.py:42: AssertionError !!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!! =========== 1 failed, 76 passed, 6 skipped in 6.92 seconds =====

Hi,

I didn't run the run_tests.sh in a while so I can't be helpful much in when it got introduced. I'm suprised it didn't trigger in Travis, but this has just occured to me.

Env: python 2.7, gcc 4.8, linux,

htmtest and testeverithing run fine,

Reply to this email directly or view it on GitHubhttps://github.com/numenta/nupic/issues/648 .

breznak commented 10 years ago

This was testing the new cmake configure/make build process.

But wait for it...I think it'll get more messed on my side.

Building with ./cleanbuild.sh a get another (seen before, this can be resolved) error:

$ /tmp/nta/eng/bin/run_tests.sh 
============================================================================= test session starts ==============================================================================
platform linux2 -- Python 2.7.6 -- pytest-2.4.2 -- /home/marek/devel/nupic/py27/bin/python
plugins: cov, xdist
collecting 3 items / 1 errors
==================================================================================== ERRORS ====================================================================================
_______________________________________________________ ERROR collecting tests/unit/py2/nupic/algorithms/cells4_test.py ________________________________________________________
tests/unit/py2/nupic/algorithms/cells4_test.py:31: in <module>
>   from nupic.bindings.math import Random
/tmp/nta/eng/lib/python2.7/site-packages/nupic/__init__.py:25: in <module>
>     from nupic.bindings import engine_internal
/tmp/nta/eng/lib/python2.7/site-packages/nupic/bindings/engine_internal.py:6: in <module>
>   import _engine_internal
E   ImportError: numpy.core.multiarray failed to import
------------------------------------------------------------------------------- Captured stderr --------------------------------------------------------------------------------
RuntimeError: module compiled against API version 9 but this version of numpy is 7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 1 failures !

and checking pip:

$ pip list
bash: /home/marek/devel/nupic-linux64/bin/pip: /opt/numenta/anaconda/bin/python: bad interpreter: No such file or directory

....I'll investigate a little now ;)

breznak commented 10 years ago

opened https://github.com/numenta/nupic-linux64/issues/9 for pip in nupic-linux64, I suppose cleanbuild's issue with missing numpy is related to the broken pip (will confirm now with not using nupic-linux64 and installing manually`).

Cmake's issue was different. Will be able to tell once ./cleanbuild passes 100%.

rhyolight commented 10 years ago

Thanks Marek.

breznak commented 10 years ago

I'd like to highlight this error for further reference:

`> import _engine_internal E ImportError: numpy.core.multiarray failed to import ------------------------------------------- Captured stderr ------------------------

RuntimeError: module compiled against API version 9 but this version of numpy is 7 `

The problem happens when there are two versions of numpy - "system wide", and "provided by pip for nupic", and those are at different versions. The linker (?) links to the system version *) (newer in my case, numpy 1.8) but then the library in python deps is 1.7.

I can workaround the problem by installing version 1.8, instead of 1.7 in pip: pip install numpy==1.8 .

*) In past, I remember we've linked first to the "ours" version of numpy, what are the advantages to linking to system's version first? Can we resolve this obstacle?

rhyolight commented 9 years ago

Made obsolete by #1516.