numenta / nupic.core-legacy

Implementation of core NuPIC algorithms in C++ (under construction)
http://numenta.org
GNU Affero General Public License v3.0
272 stars 276 forks source link

nupic.bindings install problem: IOError: [Errno 2] No such file or directory: '/tmp/VERSION' #1376

Closed matousc89 closed 6 years ago

matousc89 commented 6 years ago

When I call: sudo -H pip install nupic.bindings, I get the following error:

Collecting nupic.bindings
  Downloading nupic.bindings-1.0.1.tar.gz (3.1MB)
    100% |████████████████████████████████| 3.1MB 365kB/s 
    Complete output from command python setup.py egg_info:

    Setup SWIG Python module
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-GCaZnW/nupic.bindings/setup.py", line 212, in <module>
        version=getVersion(),
      File "/tmp/pip-build-GCaZnW/nupic.bindings/setup.py", line 48, in getVersion
        with open(os.path.join(REPO_DIR, "VERSION"), "r") as versionFile:
    IOError: [Errno 2] No such file or directory: '/tmp/VERSION'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-GCaZnW/nupic.bindings/
rhyolight commented 6 years ago

I don't recommend you install with sudo. What happens when you run pip install nupic --user?

matousc89 commented 6 years ago

It throws the same error. Another idea?

rhyolight commented 6 years ago

Do you have write access to /tmp?

matousc89 commented 6 years ago

Yes. I double checked it. I have regular access settings for /tmp - so I can write there.

rhyolight commented 6 years ago

Can you try to uninstall nupic completely before running pip install nupic --user again? @scottpurdy during the installation of nupic.bindings, what writes to /tmp?

scottpurdy commented 6 years ago

@scottpurdy during the installation of nupic.bindings, what writes to /tmp?

I believe pip uses /tmp as the default for its cache (downloads, etc). You can change it by setting the TMPDIR env dir while running the pip command.

matousc89 commented 6 years ago

I uninstall the nupic completely. Now I get:

Collecting nupic
  Using cached nupic-0.5.6.tar.gz
Collecting asteval==0.9.1 (from nupic)
  Using cached asteval-0.9.1.tar.gz
Collecting coverage==3.7.1 (from nupic)
  Using cached coverage-3.7.1.tar.gz
Collecting mock==1.0.1 (from nupic)
  Using cached mock-1.0.1.zip
Collecting ordereddict==1.1 (from nupic)
  Using cached ordereddict-1.1.tar.gz
Collecting psutil==1.0.1 (from nupic)
  Using cached psutil-1.0.1.tar.gz
Collecting pytest==2.5.1 (from nupic)
  Using cached pytest-2.5.1.tar.gz
Collecting pytest-cov==1.6 (from nupic)
  Using cached pytest-cov-1.6.tar.gz
Collecting pytest-xdist==1.8 (from nupic)
  Using cached pytest-xdist-1.8.zip
Collecting python-dateutil==2.1 (from nupic)
  Using cached python-dateutil-2.1.tar.gz
Collecting PyYAML==3.10 (from nupic)
  Using cached PyYAML-3.10.tar.gz
Collecting unittest2==0.5.1 (from nupic)
  Using cached unittest2-0.5.1.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-g07do1d6/unittest2/setup.py", line 12, in <module>
        from unittest2 import __version__ as VERSION
      File "/tmp/pip-build-g07do1d6/unittest2/unittest2/__init__.py", line 40, in <module>
        from unittest2.collector import collector
      File "/tmp/pip-build-g07do1d6/unittest2/unittest2/collector.py", line 3, in <module>
        from unittest2.loader import defaultTestLoader
      File "/tmp/pip-build-g07do1d6/unittest2/unittest2/loader.py", line 92
        except Exception, e:
                        ^
    SyntaxError: invalid syntax

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-g07do1d6/unittest2/
rhyolight commented 6 years ago

This looks like a python 2 vs 3 error. Things like this usually happen when there are conflicting versions of python and / or pip installed on a system.

Try pip uninstall unittest2, then install again.

matousc89 commented 6 years ago

Done with no success. Any other hint?

rhyolight commented 6 years ago

The error you are getting implies that you are running python 3, and NuPIC is only compatible with python 2. I'm not sure how to help you figure out why pip is running python 3, but you should check to see what version of python is in your path and what versions are installed on your system. You should also investigate what versions of pip you have installed.

matousc89 commented 6 years ago

Just to be sure I ran pip2 install nupic --user and I am back to previous error:

Collecting nupic
  Using cached nupic-1.0.3-py2-none-any.whl
Collecting pytest-cov==2.5.0 (from nupic)
  Using cached pytest_cov-2.5.0-py2.py3-none-any.whl
Collecting PyMySQL==0.6.2 (from nupic)
  Using cached PyMySQL-0.6.2-py2.py3-none-any.whl
Collecting ordereddict==1.1 (from nupic)
  Using cached ordereddict-1.1.tar.gz
Collecting validictory==0.9.1 (from nupic)
  Using cached validictory-0.9.1.tar.gz
Collecting psutil==1.0.1 (from nupic)
  Using cached psutil-1.0.1.tar.gz
Collecting prettytable==0.7.2 (from nupic)
  Using cached prettytable-0.7.2.zip
Collecting PyYAML==3.10 (from nupic)
  Using cached PyYAML-3.10.tar.gz
Collecting pytest==3.0.7 (from nupic)
  Using cached pytest-3.0.7-py2.py3-none-any.whl
Collecting pyproj==1.9.3 (from nupic)
  Using cached pyproj-1.9.3.tar.gz
Collecting pycapnp==0.5.12; platform_system == "Linux" or platform_system == "Darwin" (from nupic)
  Using cached pycapnp-0.5.12.tar.gz
Collecting unittest2==0.5.1 (from nupic)
  Using cached unittest2-0.5.1.zip
Collecting numpy==1.12.1 (from nupic)
  Using cached numpy-1.12.1-cp27-cp27mu-manylinux1_i686.whl
Collecting asteval==0.9.1 (from nupic)
  Using cached asteval-0.9.1.tar.gz
Collecting mock==1.0.1 (from nupic)
  Using cached mock-1.0.1.zip
Collecting pytest-xdist==1.16.0 (from nupic)
  Using cached pytest-xdist-1.16.0.tar.gz
Collecting DBUtils==1.1 (from nupic)
  Using cached DBUtils-1.1.tar.gz
Collecting python-dateutil==2.1 (from nupic)
  Using cached python-dateutil-2.1.tar.gz
Collecting nupic.bindings==1.0.0 (from nupic)
  Could not find a version that satisfies the requirement nupic.bindings==1.0.0 (from nupic) (from versions: 1.0.1)
No matching distribution found for nupic.bindings==1.0.0 (from nupic)

If I try to run pip2 install nupic.bindings, I get the previous error with /tmp

rhyolight commented 6 years ago

What operating system? 32b or 64b?

matousc89 commented 6 years ago

Ubuntu, 32b at home, 64b at work. The same error on both machines.

rhyolight commented 6 years ago

The problem is that we do not support 32b systems. :(