I have been trying to streamline my build process for NuPIC Core and NuPIC, and to eliminate the need for elevated permissions where possible. Being a newbie to both Python and NuPIC, I figured I should get some input from more experience folks.
My process so far is:
pip install --user --upgrade setuptools wheel pip install --user pycapnp==0.6.3 git clone -b 1.0.6 https://github.com/numenta/nupic.core.git cd nupic.core NUPIC_CORE="$(pwd)" pip install --user -r bindings/py/requirements.txt mkdir -p $NUPIC_CORE/build/scripts cd $NUPIC_CORE/build/scripts cmake $NUPIC_CORE -DCMAKE_BUILD_TYPE=Release -DPY_EXTENSIONS_DIR=$NUPIC_CORE/bindings/py/src/nupic/bindings make -j4 sudo make install cd $NUPIC_CORE sudo python setup.py develop sudo -H pip install nupic==1.0.5
I’m hoping to use the “–user” flag instead of sudo on the pip install nupic step. This will require installing the bindings without sudo. However without sudo, that step results in the following error:
Setup SWIG Python module running develop error: can't create or remove files in install directory The following error occurred while trying to add or remove files in the installation directory: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/test-easy-install-29777.write-test' The installation directory you specified (via --install-dir, --prefix, or the distutils default setting) was: /usr/local/lib/python2.7/dist-packages/ Perhaps your account does not have write access to this directory? If the installation directory is a system-owned directory, you may need to sign in as the administrator or "root" account. If you do not have administrative access to this machine, you may wish to choose a different installation directory, preferably one that is listed in your PYTHONPATH environment variable. For information on other options, you may wish to consult the documentation at: https://setuptools.readthedocs.io/en/latest/easy_install.html Please make the appropriate changes for your system and try again.
This gives me a lot of suggestions, but not sure which is the correct route to take in this case. Figured I would see if anyone with more experience might be able to direct me on how this is properly done.