【问题标题】:Error trying to install Numpy尝试安装 Numpy 时出错
【发布时间】:2015-01-17 21:22:11
【问题描述】:

我目前在 Cisco 路由器上运行 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.

【问题讨论】:

  • 您似乎缺少一些依赖项,请参阅docs.scipy.org/doc/numpy/user/install.html#prerequisites
  • numpy 正在寻找 Fortran 编译器,但找不到。也许试试python setup.py build --fcompiler=gnu。如果您尝试通过包管理器(例如 easy_installpip)进行安装,而不是从源代码构建,那么您的运气可能会更好。
  • 正如日志的最后一行所说,您缺少 python-dev 来编译 python.h。
  • 我已经下载了'rpmfind.net//linux/RPM/fedora/18/x86_64/p/…',并且我做了“rpm -i python-dev.rpm”
  • 还有一个“快速而肮脏”的解决方法:试试Buildroot。它已经提供了 numpy.至少你可以看看它是recipe

标签: python python-2.7 numpy embedded-linux cisco


【解决方案1】:

您缺少编译 numpy 所需的大量依赖项。

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

在 Ubuntu 上,为 numpy 1.8.1 列出了以下依赖项,因此也许您可以从此处推断要安装的内容:

  • python 2.7
  • libblas3
  • liblapack3
  • 海合会
  • 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 版本

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 2020-01-26
    • 2017-09-15
    • 2017-10-11
    • 2015-01-17
    • 2013-11-13
    • 2018-03-05
    • 2015-12-18
    相关资源
    最近更新 更多