安装Numpy时出现错误

9

我目前在一台思科路由器上运行Yocto-distr(因此这是嵌入式Linux系统调用Guest-Os)。我已经安装了python-2.7.3版本。我现在想安装Numpy,但是安装不成功,而且我不知道错误描述中该看什么。我应该怎么做?

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.

看起来你缺少一些依赖项,请参考 http://docs.scipy.org/doc/numpy/user/install.html#prerequisites - André Laszlo
numpy正在寻找Fortran编译器,但找不到。也许可以尝试使用python setup.py build --fcompiler=gnu命令。如果您尝试通过软件包管理器(如easy_installpip)安装而不是从源代码构建,则可能会更加顺利。 - Jeff
你缺少python-dev来编译python.h,正如日志的最后一行所说。 - Benoît Latinier
还有一个“快速而肮脏”的解决方法:尝试使用Buildroot。它已经提供了NumPy。至少你可以查看它的配方 - yegorich
1个回答

5

您缺少编译numpy所需的许多依赖项。

Numpy是一个混合使用Python、C和Fortan开发的库,以提高速度。您需要安装Python头文件、Fortran编译器、gcc和BLAS/LAPACK库。

在Ubuntu上,以下依赖项被列为numpy 1.8.1所需,因此您可以从这里推断需要安装什么:

  • Python2.7
  • libblas3
  • liblapack3
  • gcc
  • gfortran
  • python-dev(Python头文件)
  • libc6

从您的错误信息来看,似乎缺少BLAS/LAPACK库和Fortran编译器:

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

您似乎已经有一个版本的gcc了。
希望这可以帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接