Search code examples
pythonnumpylibrariesneurolabtermcolor

How would I install numpy library on Coding Ground?


I tried to install neurolab, termcolor libraries on Coding Ground for python into the working folder using

pip install --target=. neurolab
pip install --target=. termcolor

and they both worked.
But when I tried:

pip install --target=. numpy

it didn't work.

I'd like to be able to run my scripts that already work on my computer locally on Coding Ground so that I can share my project with people who don't have Python installed on their computer.

UPDATE: I was able to install neurolab, termcolor in the Numpy Terminal after using quit(). But there's no way to share project from Numpy Terminal.

UPDATE: after installing scipy python wheel I tried to run my script and got below error

  File "/home/cg/root/neurolab/train/spo.py", line 73, in __call__                                                                                                       
    from scipy.optimize import fmin_bfgs                                                                                                                                 
  File "/home/cg/root/scipy/optimize/__init__.py", line 233, in <module>                                                                                                 
    from ._minimize import *                                                                                                                                             
  File "/home/cg/root/scipy/optimize/_minimize.py", line 26, in <module>                                                                                                 
    from ._trustregion_dogleg import _minimize_dogleg                                                                                                                    
  File "/home/cg/root/scipy/optimize/_trustregion_dogleg.py", line 5, in <module>                                                                                        
    import scipy.linalg                                                                                                                                                  
  File "/home/cg/root/scipy/linalg/__init__.py", line 174, in <module>                                                                                                   
    from .misc import *                                                                                                                                                  
  File "/home/cg/root/scipy/linalg/misc.py", line 5, in <module>                                                                                                         
    from .blas import get_blas_funcs                                                                                                                                     
  File "/home/cg/root/scipy/linalg/blas.py", line 155, in <module>                                                                                                       
    from scipy.linalg import _fblas                                                                                                                                      
ImportError: libtatlas.so.3: cannot open shared object file: No such file or directory

Solution

  • Regarding neurolab and termcolor, they both are pure python modules.

    Pure Python i.e. modules are written using only python. These libraries are platform independent and easily distributable.

    for numpy, its a python wrapper written over C/C++ library

    so, numpy requires a build toolchain, i.e. it needs to be built on platform before using it, this makes numpy module platform dependent.

    The coding platforms like "Coding Ground” have a limited build tool chain for building complex C/C++ Python modules/extensions.

    one of the solution is to build the module on other machine and then push that on "Coding Ground”.

    I have created a build for numpy and uploaded it on my dropbox, you can install it on tutorialspointlike this:

    wget "https://www.dropbox.com/s/40l9l9kpc018ehn/numpy-1.11.0-cp27-none-linux_x86_64.whl?dl=0&raw=1" -O numpy-1.11.0-cp27-none-linux_x86_64.whl
    
    pip install --target=. numpy-1.11.0-cp27-none-linux_x86_64.whl
    

    and this will look like

    sh-4.3$ pip install --target=. numpy-1.11.0-cp27-none-linux_x86_64.whl                                                      
    Processing ./numpy-1.11.0-cp27-none-linux_x86_64.whl  
    Installing collected packages: numpy  
    Successfully installed numpy  
    sh-4.3$   
    sh-4.3$ python
    Python 2.7.10 (default, Sep  8 2015, 17:20:17)
    [GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.    
    >>> import numpy     
    >>>  
    

    ready to use and share the project.

    more reading on how to build a python wheel

    Hope this solves your problem.


    Edit:

    As Tin Tran had requirement for scipy module, have built it for Linux.

    you can access it using following script:

    wget "https://www.dropbox.com/s/awsvqm4devetljm/scipy-0.17.1-cp27-none-linux_x86_64.whl?dl=0&raw=1" -O scipy-0.17.1-cp27-none-linux_x86_64.whl
    
    pip install --target=. scipy-0.17.1-cp27-none-linux_x86_64.whl
    

    Note: the scipy module has a dependency on numpy, make sure you have numpy installed before hand.