windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)

N久没有开始写博客了,总觉得要随便记点东西,岁月蹉跎,曾经搞得一些东西、技术、工具,说丢也就丢了,点点滴滴还是要记录一下吧。。。

   在windows下使用pip安装一些python的第三方库,有很多使用C写了一些扩展,需要使用VC++ Compiler 来编译安装(也可使用MInGW,一般不推荐),否则就会出现“Unable to find vcvarsall.bat”。像Python2.7就需要使用VS2008 C++ compiler , 而python3至python3.4 (python3.5 将采用VS2015)采用VS2010 编译生成。但是,凡安装过VS这个巨无霸的臃肿IDE的都知道,附带捆绑一大堆你不知道有没有用的Microsoft 的插件,占据大量的C盘空间,启动又慢,虽然IDE的界面功能勉强过得去。如果电脑配置一般的话,这东西就搞得N个卡,一般不做相关开发的,就没必要去安装整个VS。 对于Python 2.7 来说,微软还算有良心,直接推出了Microsoft Visual C++ Compiler for Python 2.7,下载直接安装即可。然后,在开始菜单-》所有程序里面,找到对应的目录,根据的你的平台和python版本(选x86或x64)点击对应的Command Prompt运行。 这个cmd窗口里面,可以输入set命令查看一下环境变量,发现,已经设置好了INCLUDE=, PATH=, LIB=, and LIBPATH=这几个参数,于是直接输入

pip install numpy

就可安装编译对应的第三方模块、库了,有时编译过程比较漫长, 需耐心等待。

而对python3 来说, 则没有这么方便了,由于我的Python3.4 是64位,显然直接用VS2010 Express也不行了,因为它默认只有x86版本的,没有64位的。参考一下Stackoverflow中一篇问答:

Python PIP has issues with path for MS Visual Studio 2010 Express for 64-bit install on Windows 7

根据上面提出的建议,我在本机上得到对应解决方案。先安装VS2010 Express ,然后再安装windows SDK 7.1  ,最后也要安装一个64位compiler的补丁;

   Microsoft SDK 7.1 (Windows 7)

   VC-Compiler-KB2519277

PS:在安装SDK 7.1 之前,请先卸载 VC redistribute 2010 相关(包括X86 和 X64)组件包,否则安装报错。

完成上述步骤之后,基本的MSVC的编译环境(包含x64)就已经配置好了,但是如果你在以后编译项目的时候,比如在构建Qt5项目时,会出现出现以下错误:

c:\program files (x86)\microsoft visual studio 10.0\vc\include\intrin.h(26): fatal error C1083: Cannot open include file: 'ammintrin.h': No such file or directory

此时则可以到网上下载对应 ammintrin.h ,放到 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\目录下即可,可在下面的这篇百度文库里下载:

  ammintrin.h头文件,Windows SDK 7.1安装KB2519277补丁后必备

安装完毕之后,在开始菜单里面,找到“Windows SDK 7.1 Command Prompt”, 点击运行,在shell下可以通过SetEnv 来设置对应的编译环境,如下图:

设置“setenv /x64” 之后,即可在64位编译环境下pip install 对应的包。

到了这里,可能需要提一下,搭建好环境后,分别在python 2.7 和 python 3.4 里面安装numpy,发现py2没问题,py3却安装编译link失败(之前都在虚拟机里面测试了一下,py3安装是没问题的),这是为何呢? 请对比一下下面两幅图:

显然py2安装的时候,link命令行下的libpath使用“”引起来了,所以路径有空格不会把参数隔断,而py3就没这么细致了,不知道是pip、setuptools调用cmd命令的缺心眼,还是distutils里面的bug,反正py3的安装路径不能有空格。于是调整了一下python3的安装路径,也就是不含空格,就编译成功了。

  当然这只是搭建好了VC++ 的编译环境,对于像SciPy这样的数值计算库,安装的话需要Fortran的编译器。显然windows下的编译安装远没有linux下的简单方便(除了包名不好记,包依赖比较麻烦),gcc、gfortran现成的,apt-get 里面也有现成的。 所以在windows下开发测试的话,可以直接在这个加州大学尔湾分校(UCI)提供的大量已编译打包好的针对windows的wheel安装包,上面有Numpy、SciPy、matplotlib等等数值分析、科学计算的模块库,并且还都是 MKL 版的。下载对应的版本,直接用“pip install xxxx.whl”即可完成安装,whl文件其实就跟zip文件一样,打包压缩一下而已,你也直接用压缩软件解开,将其放到对应的Lib/site-packages目录下即可。Of course,你也可以使用 Anaconda 这样的python定制环境版本,里面已将上面的包直接集成了,包括像IPython这么好用的REPL工具,以及conda 包管理。

(0)

相关推荐

  • windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)

    N久没有开始写博客了,总觉得要随便记点东西,岁月蹉跎,曾经搞得一些东西.技术.工具,说丢也就丢了,点点滴滴还是要记录一下吧... 在windows下使用pip安装一些python的第三方库,有很多使用C写了一些扩展,需要使用VC++ Compiler 来编译安装(也可使用MInGW,一般不推荐),否则就会出现"Unable to find vcvarsall.bat".像Python2.7就需要使用VS2008 C++ compiler , 而python3至python3.4 (py

  • Windows下安装python MySQLdb遇到的问题及解决方法

    片头语:因为工作需要,在CentOS上搭建环境MySQL+Python+MySQLdb,个人比较习惯使用Windows系统的操作习惯,对纯字符的OS暂时还不太习惯,所以,希望能在Windows系统上也搭建一个类似的环境,用于开发.下面介绍的是在Windows环境下编译MySQLdb的过程.补充一句:最近在网上搜索到一个MySQLdb的Windows安装包,使用起来会更方便一些,地址:http://www.codegood.com/archives/4 或者到 http://www.jb51.ne

  • windows下安装Python的XlsxWriter模块方法

    在windows环境下安装python的XlsxWriter模块,虽然很简单,但由于自己粗心,少了一个字符,导致不少的错误... 1.通过pip命令来安装. C:\Users\Administrator>pip install XlsWriter Collecting XlsWriter Could not find a version that satisfies the requirement XlsWriter (from versions: ) No matching distribut

  • windows下安装Python虚拟环境virtualenvwrapper-win

    1.安装 执行命令 pip install virtualenv 为了使用virtualenv更方便,可以借助 virtualenvwrapper 执行命令 pip install virtualenvwrapper-win 安装完毕以后可以通过命令来创建virtualenvwrapper 2.基本使用 2.1创建 virtualenvwrapper mkvirtualenv my_env 那么会在你当前用户下创建一个Env的文件夹,然后将这个虚拟环境安装到这个目录下,如果电脑中安装了Pytho

  • windows下安装Python和pip终极图文教程

    本文希望提供傻瓜式的教程,能够令读者成功安装Python和pip. 第一步,我们先来安装Python,博主选择的版本是最新的3.4.2版本.windows下面的Python安装一般是通过软件安装包安装而不是命令行,所以我们首先要在Python的官方主页上面下载最新的Python安装包.下载地址是:https://www.python.org/downloads/ 在下载完成之后,一直点击下一步就OK了.在安装完成之后,打开控制台,输入"Python",我们能够看到下面的效果: 原因很简

  • windows下安装python paramiko模块的代码

    1.安装python  windows版本好:python-2.5.1.msi 2.安装pycrypto windows版本号:pycrypto-2.0.1.win32-py2.5.exe地址:http://tmrc.mit.edu/mirror/twisted/Dependencies/Win/pycrypto-2.0.1.win32-py2.5.exe 3. 安装MySQL DB Module for Python 2.5地址:http://sourceforge.net/projects/

  • python MySQLdb Windows下安装教程及问题解决方法

    使用python访问mysql,需要一系列安装 linux下MySQLdb安装见  Python MySQLdb在Linux下的快速安装 http://www.jb51.net/article/65743.htm ------------------------------------------------------------- 以下是windows环境下的: 1. 安装数据库mysql 下载地址:http://www.mysql.com/downloads/ 可以顺带装个图形工具,我用的

  • Windows下安装Redis及使用Python操作Redis的方法

    首先说一下在Windows下安装Redis,安装包可以在https://github.com/MSOpenTech/redis/releases中找到,可以下载msi安装文件,也可以下载zip的压缩文件. 下载zip文件之后解压,解压后是这些文件: 里面这个Windows Service Documentation.docx是一个文档,里面有安装指导和使用方法. 也可以直接下载msi安装文件,直接安装,安装之后的安装目录中也是这些文件,可以对redis进行相关的配置. 安装完成之后可以对redi

  • python在Windows下安装setuptools(easy_install工具)步骤详解

    本文讲述了python在Windows下安装setuptools(easy_install工具)的方法.分享给大家供大家参考,具体如下: [题外话介绍下setuptools] setuptools 是一组由PEAK(Python Enterprise Application Kit)开发的 Python 的 distutils 工具的增强工具,可以让程序员更方便的创建和发布 Python的egg 包,特别是那些对其它包具有依赖性的状况. 由 setuptools 创建和发布的包看起来和基于 di

  • 如何在windows下安装配置python工具Ulipad

    在windows下安装配置Ulipad 今天推荐一款轻便的文本编辑器Ulipad,用来写一些小的Python脚本非常方便. Ulipad下载地址: https://github.com/limodou/ulipad 注意Ulipad是基于wxPython编写的,因此需要有wxpython的支持,得先安装wxpython. 安装完成之后,打开Ulipad就是如下界面了: Ulipad通用设置: 选择"编辑"->"参数": 这里可以设置 文件的默认编码格式.自动缩

随机推荐