在windows机器上安装python非官方包,如果环境只是用于开发,不作任何测试的话,最好的解决办法是:

在Linux上pip安装好之后,把python根目录lib/python3.6/site-packages/下载到windows机器上的python目录lib/python3.6/site-packages/下,就可以了。

1.windows上做Python开发,搭环境还真不比Linux容易。error:
Unable to find vcvarsall.bat
这个错误眼熟吧?

凡是安装和操作系统底层密切相关的Python扩展,几乎都会遇到这个错误。比如PIL, Pillow(两个图形库),greenlet以及其基础之上的eventlet, gevent微线程并发库等等。当然了有一些情况下,你不必彻底解决它,你可以选择windows版本,那么也就只能使用阉割版功能。

PIL有windows版,即使安装上了,64位Python一定报错 The _imaging C module is not installed, 除非自己重新编译安装。此外与CPU位数可能有关系,仅个人猜测。本人两个机器都是Win7旗舰版64位,安装的32位Python,其中一个CPU是64位的也遇到这个错误,32位的CPU则不报错。

为了解决64位CPU报错,于是安装Pillow的windows版,确实能正常使用,不再报错。但是图片效果极不理想,图片里面用到font就悲剧,出个验证码的图片都难以辨认。

greenlet也可以安装windows版,有可能报错加载动态链接库失败,比如”ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。“不幸我也遇到了。

2.windows安装使用这些偏底层的Python扩展太不爽了,怎么彻底解决 error: Unable to find vcvarsall.bat 呢?

1.不要按网上说的,安装MinGW,然后在“..python安装路径...\Lib\distutils”下新建一个文件distutils.cfg,在这文件里面指定编译器为mingw32

如:

[build]
compiler=mingw32

原因是什么,可以百度一下mingw是什么,毕竟不是GCC,又不如VC接windows的地气,编译出来的东西,安装上了也有不好使的时候。甚至我遇到MinGW还无法编译greenlet0.4.1,导致greenlet无法源码安装。MinGW经常command 'gcc' failed with exit status 1 或者error: unrecognized command line option '-mno-cygwin'。即使编译通过了,安装上了,你安装的Python标准库不是由mingw编译的,你的扩展包却是mingw编译的,谁也不敢保证完全兼容或者说质量跟得上,说不准一些莫名其妙的神经质错误。

2.去下载安装VS2010(08版貌似也行,不过没必要用旧版,指不定哪个库又无法编译),给个地址(百度的云盘  国内应该速度可以)

http://pan.baidu.com/share/link?shareid=1609273194&uk=3255422755

然后注意这一步很重要:命令行下执行 SET VS90COMNTOOLS=%VS100COMNTOOLS%

如果你安装的是 2012 版 SET VS90COMNTOOLS=%VS110COMNTOOLS%

如果你安装的是 2013版 SET VS90COMNTOOLS=%VS120COMNTOOLS%

   或者更暴力,直接配置系统环境变量 VS90COMNTOOLS指向 %VS你的版本COMNTOOLS%

   你还可以更暴力,在“..python安装路径...\Lib\distutils目录下有个msvc9compiler.py找到243行  

                  toolskey = "VS%0.f0COMNTOOLS" % version   直接改为 toolskey = "VS你的版本COMNTOOLS"(这个就是为什么要配 ”VS90COMNTOOLS“ 的原因,因为人家文件名都告诉你了是  Microsoft vc 9的compiler,   代码都写死了要vc9的comntools,就要找这个玩意儿,找不到不干活)

这么做的理由是Python2。7 扩展包是可以用08版或者更高的VS编译的,其setup.py(安装脚本)都是去windows系统寻找08版的VS,所以设置VS90的path

如果Python版本小于2.7,强烈建议使用 VS08版,用2010或者更高可能部分扩展不好使。给个例子:

http://stackoverflow.com/questions/6551724/how-do-i-point-easy-install-to-vcvarsall-bat    这个例子说明 VS2010不适合Python2.6

3.安装VS后该重启的重启,clean一下之前安装Python扩展失败的残留文件,然后 直接下载 pil   pillow greenlet  eventlet等源码,解压后python setup.py build发现都可以编译了。接下来就换成 python setup.py install安装吧。

windows上,python安装非官方包,提示error: Unable to find vcvarsall.bat的更多相关文章

  1. 在windows下安装lxml 报错error: Unable to find vcvarsall.bat

    刚开始安装 ,我是使用命令pip install lxml直接进行安装,不过出错了 error: Unable to find vcvarsall.bat 解决方案: 1.首先安装wheel,pip ...

  2. Windows下Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题

    Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题 已经安装了VS2017,需要将项目中的C代码翻译为Python代码,在编 ...

  3. python27(32位)安装模块报错“error: Unable to find vcvarsall.bat”

    1)首先,下载一个Microsoft Visual C++ Compiler for Python 2.7的补丁,下载地址在这里: http://www.microsoft.com/en-us/dow ...

  4. error: Unable to find vcvarsall.bat

    http://www.crifan.com/python_mmseg_error_unable_to_find_vcvarsall_bat/ [已解决]安装Python模块mmseg出错:error: ...

  5. 【转】Windows下Python快速解决error: Unable to find vcvarsall.bat

    转自:http://blog.csdn.net/sad_sugar/article/details/73743863 系统配置:Windows10 x64, Visual Studio 2017, P ...

  6. 解决 Windows 编译 Fast R-CNN 的 bbox 和 nms 出现的错误 error: Unable to find vcvarsall.bat

    在 Windows 下安装一个底层的 Python 包时(Fast R-CNN 的 bbox 和 nms),遇到 error: Unable to find vcvarsall.bat 错误,看到这个 ...

  7. Python error: Unable to find vcvarsall.bat

    在安装一些Python模块时,大部分是cpython写的模块时会发生如下错误 error: Unable to find vcvarsall.bat.先前的一篇文章:在Windows上安装Scrapy ...

  8. [转]Resolving Python error: Unable to find vcvarsall.bat

    Resolving Python error: Unable to find vcvarsall.bat While installing python package flask-user usin ...

  9. error: Setup script exited with error: Unable to find vcvarsall.bat

    安装mxnet python版本时遇到“Unable to find vcvarsall.bat”错误搜索一下后查到如下方法: python 3.5.2版本依赖高版本的vs解决办法是安装vs2015的 ...

随机推荐

  1. 11、JQuery知识点总结

    1.JQuery简介 JQuery 是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作 jQuery有下列特色: 跨浏览器的DOM元素选择 DOM巡访与更改:支持CS ...

  2. leetcode 【 Unique Paths II 】 python 实现

    题目: Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. H ...

  3. python学习_常用语句

    1.变量 1 name='hu qihang' #变量名应为英文,方便阅读 2 name_of_gf='chen ye' #多个单词用下划线隔开 3 名字='hu qihang' #变量名可以是中文 ...

  4. 【转】netstat 查看端口占用情况

    netstat用来查看系统当前系统网络状态信息,包括端口,连接情况等,常用方式如下: netstat -atunlp,各参数含义如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l ...

  5. java基础-容器

    已经写了一段时间JAVA代码了,但仔细想来,却发现对JAVA的很多方面还是一片迷茫. 利用周末补一下基础知识吧. 大致列一下这个周末需要学习的内容 1 容器 (本节内容) 2 线程 3 流 目录 1 ...

  6. 【转】Unity3D学习日记(一)使用UGUI制作虚拟摇杆

    http://blog.csdn.net/begonia__z/article/details/51170059 如今手机游戏玩法多种多样,尤其使用虚拟摇杆进行格斗类游戏开发或者是MMORPG成为了主 ...

  7. Canvas与Image互相转换示例以及利用该技术实现微信长按自动识别二维码功能

    现在扫描二维码已经很普遍,微信扫一扫即可,但是如果二维码是在自己的手机上呢?那就要用到微信里的一个功能了,手指长按二维码,会弹出自动识别的选项,点确定就可以看到二维码的内容了.那么怎么通过前端实现这个 ...

  8. CSA Round 84 Growing Trees

    题目 题目大意 给定一棵有 $n$ 个节点的树,边的权值每天变化.对于第 $i$ 条边,在第 $0$ 天,其权值为 $c_i$,每天权值变化 $a_i$(即,在第 $k$ 天,其权值为 $c_i + ...

  9. [TC_SRM_466]DrawingBlackCrosses

    [TC_SRM_466]DrawingBlackCrosses 试题描述 \(n \times m\)(\(n, m \le 20\))的棋盘 其中至多有 \(8\) 个格子为黑色,其他格子为白色 每 ...

  10. xml的并发

    网站整站的缓存方式都是依靠的DataSet的ReadXml和WriteXml的方式实现的,这种方式在访问量不是很大的网站中是一点问题都没有的(最大可承受的日IP估计在8000-15000左右),但是当 ...