Error trying to install Numpy

andy_tse picture andy_tse · Jan 17, 2015 · Viewed 10.2k times · Source

I am currently running Yocto-distr on a Cisco Router (so this is embedded-Linux system call Guest-Os). I already have python-2.7.3 version installed. I am currently to install Numpy. However, the installation wasn't successful, and I have no idea what to look for in the error description. What should I do?

root@qemux86:/mnt/sdc1/numpy-1.8.1# python setup.py install
    Running from numpy source directory.
    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'test_suite'
      warnings.warn(msg)
    non-existing path in 'numpy/distutils': 'site.cfg'
    /bin/sh: svnversion: command not found
    F2PY Version 2
    blas_opt_info:
    blas_mkl_info:
      libraries mkl,vml,guide not found in ['/usr/local/lib', '/usr/lib']
      NOT AVAILABLE

    openblas_info:
      libraries  not found in ['/usr/local/lib', '/usr/lib']
      NOT AVAILABLE

    atlas_blas_threads_info:
    Setting PTATLAS=ATLAS
      libraries ptf77blas,ptcblas,atlas not found in ['/usr/local/lib', '/usr/lib']
      NOT AVAILABLE

    atlas_blas_info:
      libraries f77blas,cblas,atlas not found in ['/usr/local/lib', '/usr/lib']
      NOT AVAILABLE

    /mnt/sdc1/numpy-1.8.1/numpy/distutils/system_info.py:1521: UserWarning:
        Atlas (http://math-atlas.sourceforge.net/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [atlas]) or by setting
        the ATLAS environment variable.
      warnings.warn(AtlasNotFoundError.__doc__)
    blas_info:
      libraries blas not found in ['/usr/local/lib', '/usr/lib']
      NOT AVAILABLE

    /mnt/sdc1/numpy-1.8.1/numpy/distutils/system_info.py:1530: UserWarning:
        Blas (http://www.netlib.org/blas/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [blas]) or by setting
        the BLAS environment variable.
      warnings.warn(BlasNotFoundError.__doc__)
    blas_src_info:
      NOT AVAILABLE

    /mnt/sdc1/numpy-1.8.1/numpy/distutils/system_info.py:1533: UserWarning:
        Blas (http://www.netlib.org/blas/) sources not found.
        Directories to search for the sources can be specified in the
        numpy/distutils/site.cfg file (section [blas_src]) or by setting
        the BLAS_SRC environment variable.
      warnings.warn(BlasSrcNotFoundError.__doc__)
      NOT AVAILABLE

    /bin/sh: svnversion: command not found
    non-existing path in 'numpy/lib': 'benchmarks'
    lapack_opt_info:
    lapack_mkl_info:
    mkl_info:
      libraries mkl,vml,guide not found in ['/usr/local/lib', '/usr/lib']
      NOT AVAILABLE

      NOT AVAILABLE

    atlas_threads_info:
    Setting PTATLAS=ATLAS
      libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib
      libraries lapack_atlas not found in /usr/local/lib
      libraries ptf77blas,ptcblas,atlas not found in /usr/lib
      libraries lapack_atlas not found in /usr/lib
    numpy.distutils.system_info.atlas_threads_info
      NOT AVAILABLE

    atlas_info:
      libraries f77blas,cblas,atlas not found in /usr/local/lib
      libraries lapack_atlas not found in /usr/local/lib
      libraries f77blas,cblas,atlas not found in /usr/lib
      libraries lapack_atlas not found in /usr/lib
    numpy.distutils.system_info.atlas_info
      NOT AVAILABLE

    /mnt/sdc1/numpy-1.8.1/numpy/distutils/system_info.py:1427: UserWarning:
        Atlas (http://math-atlas.sourceforge.net/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [atlas]) or by setting
        the ATLAS environment variable.
      warnings.warn(AtlasNotFoundError.__doc__)
    lapack_info:
      libraries lapack not found in ['/usr/local/lib', '/usr/lib']
      NOT AVAILABLE

    /mnt/sdc1/numpy-1.8.1/numpy/distutils/system_info.py:1438: UserWarning:
        Lapack (http://www.netlib.org/lapack/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [lapack]) or by setting
        the LAPACK environment variable.
      warnings.warn(LapackNotFoundError.__doc__)
    lapack_src_info:
      NOT AVAILABLE

    /mnt/sdc1/numpy-1.8.1/numpy/distutils/system_info.py:1441: UserWarning:
        Lapack (http://www.netlib.org/lapack/) sources not found.
        Directories to search for the sources can be specified in the
        numpy/distutils/site.cfg file (section [lapack_src]) or by setting
        the LAPACK_SRC environment variable.
      warnings.warn(LapackSrcNotFoundError.__doc__)
      NOT AVAILABLE

    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'define_macros'
      warnings.warn(msg)
    running install
    running build
    running config_cc
    unifing config_cc, config, build_clib, build_ext, build commands --compiler options
    running config_fc
    unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
    running build_src
    build_src
    building py_modules sources
    building library "npymath" sources
    customize Gnu95FCompiler
    Could not locate executable gfortran
    Could not locate executable f95
    customize IntelFCompiler
    Could not locate executable ifort
    Could not locate executable ifc
    customize LaheyFCompiler
    Could not locate executable lf95
    customize PGroupFCompiler
    Could not locate executable pgfortran
    customize AbsoftFCompiler
    Could not locate executable f90
    Could not locate executable f77
    customize NAGFCompiler
    customize VastFCompiler
    customize CompaqFCompiler
    Could not locate executable fort
    customize IntelItaniumFCompiler
    Could not locate executable efort
    Could not locate executable efc
    customize IntelEM64TFCompiler
    customize GnuFCompiler
    Could not locate executable g77
    customize G95FCompiler
    Could not locate executable g95
    customize PathScaleFCompiler
    Could not locate executable pathf95
    don't know how to compile Fortran code on platform 'posix'
    C compiler: i586-poky-linux-gcc -m32 -march=i586 -fno-strict-aliasing -O2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC

    compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/include -I/usr/include/python2.7 -c'
    i586-poky-linux-gcc: _configtest.c
    i586-poky-linux-gcc -m32 -march=i586 _configtest.o -o _configtest
    success!
    removing: _configtest.c _configtest.o _configtest
    C compiler: i586-poky-linux-gcc -m32 -march=i586 -fno-strict-aliasing -O2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC

    compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/include -I/usr/include/python2.7 -c'
    i586-poky-linux-gcc: _configtest.c
    _configtest.c:1:5: warning: conflicting types for built-in function 'exp' [enabled by default]
    i586-poky-linux-gcc -m32 -march=i586 _configtest.o -o _configtest
    _configtest.o: In function `main':
    /mnt/sdc1/numpy-1.8.1/_configtest.c:6: undefined reference to `exp'
    collect2: error: ld returned 1 exit status
    _configtest.o: In function `main':
    /mnt/sdc1/numpy-1.8.1/_configtest.c:6: undefined reference to `exp'
    collect2: error: ld returned 1 exit status
    failure.
    removing: _configtest.c _configtest.o
    C compiler: i586-poky-linux-gcc -m32 -march=i586 -fno-strict-aliasing -O2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC

    compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/include -I/usr/include/python2.7 -c'
    i586-poky-linux-gcc: _configtest.c
    _configtest.c:1:5: warning: conflicting types for built-in function 'exp' [enabled by default]
    i586-poky-linux-gcc -m32 -march=i586 _configtest.o -lm -o _configtest
    success!
    removing: _configtest.c _configtest.o _configtest
    building library "npysort" sources
      adding 'build/src.linux-i686-2.7/numpy/core/src/private' to include_dirs.
    None - nothing done with h_files = ['build/src.linux-i686-2.7/numpy/core/src/private/npy_partition.h']
    building extension "numpy.core._dummy" sources
    Generating build/src.linux-i686-2.7/numpy/core/include/numpy/config.h
    C compiler: i586-poky-linux-gcc -m32 -march=i586 -fno-strict-aliasing -O2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC

    compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/include -I/usr/include/python2.7 -c'
    i586-poky-linux-gcc: _configtest.c
    _configtest.c:1:20: fatal error: Python.h: No such file or directory
    compilation terminated.
    _configtest.c:1:20: fatal error: Python.h: No such file or directory
    compilation terminated.
    failure.
    removing: _configtest.c _configtest.o
    Traceback (most recent call last):
      File "setup.py", line 239, in <module>
        setup_package()
      File "setup.py", line 231, in setup_package
        setup(**metadata)
      File "/mnt/sdc1/numpy-1.8.1/numpy/distutils/core.py", line 169, in setup
        return old_setup(**new_attr)
      File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
        dist.run_commands()
      File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/mnt/sdc1/numpy-1.8.1/numpy/distutils/command/install.py", line 57, in run
        r = old_install.run(self)
      File "/usr/lib/python2.7/distutils/command/install.py", line 565, in run
        self.run_command('build')
      File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/mnt/sdc1/numpy-1.8.1/numpy/distutils/command/build.py", line 39, in run
        old_build.run(self)
      File "/usr/lib/python2.7/distutils/command/build.py", line 127, in run
        self.run_command(cmd_name)
      File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/mnt/sdc1/numpy-1.8.1/numpy/distutils/command/build_src.py", line 153, in run
        self.build_sources()
      File "/mnt/sdc1/numpy-1.8.1/numpy/distutils/command/build_src.py", line 170, in build_sources
        self.build_extension_sources(ext)
      File "/mnt/sdc1/numpy-1.8.1/numpy/distutils/command/build_src.py", line 329, in build_extension_sources
        sources = self.generate_sources(sources, ext)
      File "/mnt/sdc1/numpy-1.8.1/numpy/distutils/command/build_src.py", line 386, in generate_sources
        source = func(extension, build_dir)
      File "numpy/core/setup.py", line 428, in generate_config_h
        moredefs, ignored = cocache.check_types(config_cmd, ext, build_dir)
      File "numpy/core/setup.py", line 42, in check_types
        out = check_types(*a, **kw)
      File "numpy/core/setup.py", line 289, in check_types
        "Cannot compile 'Python.h'. Perhaps you need to "\
    SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.

Answer

Michael Aquilina picture Michael Aquilina · Jan 18, 2015

You are missing numerous dependencies which are required to compile numpy.

Numpy is developed in a mix of Python, C and Fortan for speed. You need the python header files, a fortran compiler, gcc and the BLAS/LAPACK libraries.

On Ubuntu the following dependencies are listed for numpy 1.8.1 so maybe you can infer what to install from here:

  • python 2.7
  • libblas3
  • liblapack3
  • gcc
  • gfortran
  • python-dev (python header files)
  • libc6

Looking at your errors it seems like your missing the BLAS/LAPACK libraries and a fortran compiler:

blas_mkl_info:
    libraries mkl,vml,guide not found in ['/usr/local/lib', '/usr/lib']
    NOT AVAILABLE
...
lapack_mkl_info:
    mkl_info:
      libraries mkl,vml,guide not found in ['/usr/local/lib', '/usr/lib']
      NOT AVAILABLE
...
Could not locate executable gfortran
    Could not locate executable f95

You already seem to have a version of gcc though

Hope this helps