Windows10下配置numpy&scipy

来源:互联网 发布:搜狗五笔输入法 mac 编辑:程序博客网 时间:2024/05/22 00:07

Windows10下配置numpy&scipy

10.1假期折腾一下windows平台,升级了Intel编译器到2016 update4版,然后升级了numpy和scipy,用于下一步数学知识的磨练:

  • Windows平台下的Intel编译器参数配置
  • numpy编译安装
  • scipy编译安装

Intel编译器

作为一个Intel数学库和编译器的老用户,从读研究生阶段做HPC就一直在使用,通过带有edu.cn结尾的学校邮箱可以申请该工具的一年免费非商业使用,更具体信息可以参考官方链接:Intel® Parallel Studio XE 2017,支持C, C++, Fortran, Python, 由于我的授权还有几个月有效期,先自动升级到Intel® Parallel Studio XE 2016 Update 4 Composer Edition,暂时没有下载最新的2017版本。

Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 16.0 Build 20160811Copyright (C) 1985-2016 Intel Corporation.  All rights reserved.

一种快捷的方式是通过windows菜单,打开对应的命令行模式:

All Programs -> Intel Parallel Studio XE 2016 -> select Compiler 16.0 update 4 for Intel64 Visual Studio 2015

Numpy编译安装

  1. 下载numpy最新版本numpy-1.11.2。
  2. 修改配置文件site.cfg:

    #
    # On win-64, the following options compiles numpy with the MKL library
    # dynamically linked.
    # [mkl]
    # include_dirs = C:\Program Files (x86)\Intel\Composer XE 2015\mkl\include
    # library_dirs = C:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64
    # mkl_libs = mkl_core_dll, mkl_intel_lp64_dll, mkl_intel_thread_dll
    # lapack_libs = mkl_lapack95_lp64
    [mkl]
    include_dirs = C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\include
    library_dirs = C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64;C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\compiler\lib\intel64
    mkl_libs = mkl_lapack95_lp64,mkl_blas95_lp64,mkl_intel_lp64,mkl_intel_thread,mkl_core,libiomp5md
    lapack_libs = mkl_lapack95_lp64,mkl_blas95_lp64,mkl_intel_lp64,mkl_intel_thread,mkl_core,libiomp5md
  3. 修改numpy/distutils/intelccompiler.py

    self.compile_options = [ '/nologo', '/O3', '/MD', '/W3', '/Qstd=c99', '/QxHost', '/fp:strict', '/Qopenmp']
  4. 编译安装:

    python setup.py config --compiler=intelemw build_clib --compiler=intelemw build_ext --compiler=intelemw install
  5. 故障诊断
    如果碰到类似如下错误,可能是因为1.11.2这个版本中的numpy/distutils/msvc9compiler.py包含了判断32/64位的一变量platform_bits,可参考numpy/distutils/system_info.py:

    # Determine number of bitsimport platform_bits = {'32bit': 32, '64bit': 64}platform_bits = _bits[platform.architecture()[0]]
  6. 如果需要编译32位版本,可以参考Intel Developer Zone的资料。

Scipy的编译安装

  1. 下载scipy的最新版本0.18.1。
  2. 编译安装:

    python setup.py config --compiler=intelemw --fcompiler=intelvem build_clib --compiler=intelemw --fcompiler=intelvem build_ext --compiler=intelemw --fcompiler=intelvem install
  3. 至此,确认软件已成功安装:
    pip list|findstr scipy
    scipy (0.18.1)

0 0