nupic-legacy icon indicating copy to clipboard operation
nupic-legacy copied to clipboard

"Segmentation fault: 11" while importing ModelFactory

Open nbro opened this issue 5 years ago • 6 comments

System Information

OS: Mac OS X, version 10.13.6 (High Sierra) Python: 2.7.10 (System's one, under /usr/bin) and 2.7.15 (Homebrew-installed one, under /usr/local/bin) GCC: g++ (GCC) 6.3.1 20170510 (for GNAT GPL 2017 20170515) Apple LLVM version 9.1.0 (clang-902.0.39.2), Target: x86_64-apple-darwin17.7.0, Thread model: posix

Problem Description

I installed NuPIC in a virtual environment by issuing the command pip install nupic. This also installed all NuPIC's dependencies, including nupic.bindings. I can import nupic normally without getting errors, but if I try to import ModelFactory from nupic.frameworks.opf.model_factory I get a "Segmentation fault: 11".

Python 2.7.10 (default, Oct  6 2017, 22:29:07) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import nupic
>>> from nupic.frameworks.opf.model_factory import ModelFactory
Segmentation fault: 11

or, using Homebrew installed one,

Python 2.7.15 (default, Jun 17 2018, 12:46:58) 
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import nupic
>>> from nupic.frameworks.opf.model_factory import ModelFactory
Segmentation fault: 11

Even if I install NuPIC from the local source code, using pip install . I get a "segmentation fault 11".

I have looked for similar issues. It's not the first time that people, in the NuPIC community, report a "segmentation fault" error.

Comments

In the README file, you state that NuPIC binaries are only available for OSX 10.9 and 10.10, so I suppose that no one has tried to port NuPIC to (or test on) OS X 10.13. Anyway, NuPIC (not nupic.core) is a Python package, so I don't really get what you mean by "binary" here, in this context.

If this is an issue that all Mac OS X 10.13 users have, then this is a big limitation, I think, and the issue should be solved.

I am a bit puzzled that I can import nupic, but not that particular class. nupic.frameworks.opf.model_factory probably contains the execution of code which causes this segmentation fault.

Question

Can some Mac OS X user reproduce this error?

nbro avatar Aug 29 '18 23:08 nbro

I've just noticed that I'm getting this "segmentation fault 11" in several other cases (e.g. when simply importing from nupic.encoders.scalar import *), but I've still not understood what's causing it. The strangest thing is that, when I try to do from nupic.encoders.scalar import *, the "segmentation fault 11" seems to be caused by the import statement from nupic.encoders.base import Encoder, EncoderResult, but I can directly import both Encoder and EncoderResult (using from nupic.encoders.base import Encoder, EncoderResult), without any errors.

nbro avatar Aug 30 '18 16:08 nbro

I installed NuPIC, on an Ubuntu 16.04 virtual machine, using Python 2.7.12. So far, I have not run into this issue. Later, I will try to install it on the Python versions 2.7.10 and 2.7.15. This will be my workaround until I (or someone else) solve this "segmentation fault 11" problem.

nbro avatar Aug 30 '18 19:08 nbro

I think you'll have to compile locally on 10.13.6. We don't continue to support the latest OS builds.

rhyolight avatar Sep 05 '18 15:09 rhyolight

I was just talking to @lscheinkman and he is running the same OS as you @nbro. He thinks this has something to do with your virtualenv python environment. The Seg11 does not tell us much. Brew is not going to work either.

I suggest you try to get virtualenv setup as bare as possible, make sure there is no numpy there before you install nupic. In the past, this problem has been a symptom of some numpy dependency mismatch.

If nothing else works, try outside of virtualenv. At least that will tell us that it is a problem with the python environment.

rhyolight avatar Sep 05 '18 16:09 rhyolight

I installed NuPIC on an empty virtual environment (apart from the default Python packages that are added automatically to the environment when you create it, i.e. pip, setuptools and wheel).

I will try to install it outside of the virtual environment, but I don't think this is the problem (I think I already tried it).

nbro avatar Sep 05 '18 17:09 nbro

There is something off in your python environment. Sometimes bad things in your global python env can leak into virtualenv. That has happened to me before.

rhyolight avatar Sep 10 '18 15:09 rhyolight